Tôi có yêu cầu đóng gói và phát hành thư viện điều khiển .NET trên nhiều nền tảng và có câu hỏi về cách tự động triển khai này (hoặc thực hiện hiệu quả như có thể) thông qua các kịch bản xây dựng và cấu hình VS2010.VS2010 xây dựng tập lệnh để gói DLL vào MSI và đăng ký GAC
Thư viện điều khiển sẽ được phát hành dưới dạng phiên bản Silverlight (bản dựng riêng cho phiên bản SL 3.0, 4.0, 5.0) và WPF (các bản dựng riêng cho .NET3.5/.NET4.0). Tôi cũng cần phải chỉ định các phiên bản phát hành và dùng thử của cùng một thư viện. Các phiên bản dùng thử sẽ được phân biệt trong mã với một câu lệnh TRƯỚC tiền xử lý. Cả bản dùng thử và phiên bản đầy đủ sẽ được biên dịch trong chế độ RELEASE.
Tôi tự hỏi làm thế nào để đạt được điều này một cách hiệu quả nhất có thể. Giải pháp VS2010 của tôi hiện có một dự án cho WPF (.NET 4.0) và một dự án riêng biệt cho SL (SL 4.0).
- Tôi có cần tạo thêm các dự án csproj cho các phiên bản bị thiếu hay không, ví dụ: .NET 3.5 và SL 3.0 và 5.0?
- Tôi muốn tạo một MSI cho tất cả các tệp DLL Silverlight và một MSI cho tất cả các dll WPF. Tôi có cần phải tạo thêm MSI cho các phiên bản được biên dịch là bản dùng thử không? Điều gì về MSI riêng biệt cho mỗi phiên bản của khung công tác .NET hoặc Silverlight?
- Có thể đạt được gói triển khai ở trên bằng cách sử dụng build.targets hoặc xây dựng tập lệnh không?
Về cơ bản nếu tôi tạo MSI theo cách thủ công cho tất cả các kết hợp ở trên và thực hiện xây dựng lại đầy đủ sẽ hoạt động, nhưng cũng là một quá trình mất thời gian khi phát hành bản cập nhật. Tôi đang tìm kiếm các gợi ý về cách đạt được điều này với các kịch bản xây dựng, các build.targets, các cấu hình MSI hoặc kết hợp các điều trên.
Cuối cùng khi phân phối lại các thư viện kiểm soát, cài đặt lý tưởng nên dẫn đến đăng ký trong GAC.
Bất kỳ nhận xét/đề xuất nào đều được chào đón.
Trân trọng,
Cảm ơn thông tin, chắc chắn thú vị để biết về InstallShield. Lý tưởng nhất là tìm kiếm một giải pháp tinh khiết vs2010 mặc dù. Có lẽ thiết lập các giải pháp/dự án khác nhau với việc xây dựng lại tất cả các kịch bản là cách để đi? –
Nếu bạn muốn một giải pháp bản địa, nó chắc chắn là có thể, chỉ cần phần nào làm việc nhiều hơn. Chúng tôi thực sự sử dụng kết hợp các dự án Installshield và so với dự án. Tôi đã cập nhật câu trả lời với thông tin bổ sung hy vọng hữu ích. –
Cảm ơn bạn. Có vẻ hợp lý. Tôi nghĩ rằng tôi sẽ thả #if TRIAL và thay vào đó có một mô hình khóa cấp phép để chuyển đổi nó khi chạy. Điều đó giảm một nửa số lượng các giải pháp/dự án cần thiết. –