2012-01-20 28 views
7

Có ai đã sử dụng WiX để tạo trình cài đặt cho trang web ASP.Net MVC không? Bạn có thu thập tệp từ dự án web không? Tôi không thể tìm thấy bất kỳ ví dụ điển hình nào về việc này. Dường như không có cách nào được viết thành tài liệu để bao gồm tất cả các tệp phù hợp, chỉ các tệp phù hợp và đặt chúng vào đúng vị trí.Sử dụng WiX để tạo trình cài đặt cho trang web ASP.Net MVC

Nếu bạn thêm các dự án trang web như một tài liệu tham khảo trong dự án trình cài đặt, và thiết lập harvest=True trong các thuộc tính, sau đó tất cả các tập tin trang web được chụp, nhưng có một vấn đề:

  • Một số tập tin mà không cần phải sao chép được bao gồm, ví dụ packages.config, Web.Debug.config Dường như không có cách nào rõ ràng hoặc đơn giản để loại trừ chúng (as per this discussion).
  • Các tập tin dll .website là sai chỗ, trong thư mục gốc chứ không phải là thư mục bin (as per this discussion)

Tuy nhiên, nếu bạn không sử dụng thu hoạch, bạn có rất nhiều các tập tin để tham khảo bằng tay (ví dụ như Dưới \Content\ một mình, tôi có 58 tệp trong 5 thư mục. Hầu hết trong số đó là jQuery UI) và chúng thay đổi theo thời gian, và các lỗi và thiếu sót có thể dễ dàng bị bỏ qua từ danh sách tệp WiX. Vì vậy, nó thực sự cần được giữ đồng bộ tự động.

Tôi không đồng ý với ý tưởng rằng danh sách tệp phải được chỉ định rõ ràng trong WiX và không được tạo động (có nghĩa là gợi ý ở liên kết đầu tiên, từ ngữ không rõ ràng). Nếu tôi cần xóa một tệp tôi sẽ xóa nếu từ hệ thống kiểm soát nguồn, không cần phải thực hiện thêm công việc duy trì hai danh mục song song nhưng khác nhau - một bộ tệp trong điều khiển nguồn và các tệp tương tự được liệt kê trong WiX. nên có một phiên bản của sự thật. Tất cả các tệp trong cây nguồn của trang web (với một số ngoại lệ đã biết không được sử dụng trong thời gian chạy, ví dụ: packages.config) phải được bao gồm trong quá trình triển khai.

Vì lý do công ty tôi không có nhiều sự lựa chọn về việc sử dụng WiX cho dự án này

+0

Vâng, tôi không đồng ý với bạn không đồng ý. BTW, có thực sự là một câu hỏi ở đây? Tôi đã viết hàng trăm trình cài đặt trong nhiều năm và nhiều người trong số họ đã có nhiều giải pháp n-Tier dụ incluing ASP.NET web UI và dịch vụ. Tôi đã viết tự động hóa để kiểm tra chéo xem những gì trình cài đặt của tôi tiêu thụ và việc xuất bản dự án của tôi là giống hệt nhau. Khi một cái gì đó được thêm vào nó là tầm thường cho tôi để thêm tập tin vào trình cài đặt của tôi và điều tốt nhất là tôi biết nó đã được thực hiện hoàn hảo không tự động kỳ diệu. (Triển khai và cầu nguyện.) –

Trả lời

4

Trong dự án MVC 3, chúng tôi sử dụng để thu hoạch Paraffin file cho trình cài đặt. Ví dụ: bạn có thể sử dụng "-ext" để bỏ qua các tệp có phần mở rộng, sử dụng "regExExclude" để bỏ qua tên tệp phù hợp với cụm từ thông dụng, v.v.

Paraffin cũng giữ cấu trúc phù hợp, tất cả các tệp của bạn sẽ nằm trong đúng thư mục khi chúng xuất hiện trong dự án của bạn.

2

Tôi sử dụng một chương trình mà tôi đã viết được gọi là ISWIX làm cho việc tạo các mô đun hợp nhất wxs là thao tác kéo và thả đơn giản như InstallShield. Sau đó tôi tiêu thụ mô đun hợp nhất đó trong trình cài đặt để xử lý cấu hình giao diện người dùng và IIS.

Tôi cũng có tự động hóa postbuild để trích xuất nội dung của MSI và so sánh nó với những gì dự án được xuất bản. Nếu có một delta tôi không xây dựng và bạn phải hoặc là a) thêm nó vào wxs hoặc b) loại bỏ nó khỏi xuất bản.

Tôi thấy rằng việc đếm số lượng tệp từ phiên bản xây dựng đến bản dựng tối thiểu và hệ thống này không khó duy trì. Nhược điểm là tất cả mọi thứ vẫn còn 100% cố ý tác giả và các tập tin không bao giờ kỳ diệu thêm hoặc loại bỏ từ trình cài đặt, trừ khi bạn dự định chúng. Việc tạo trình cài đặt động không đáng để mạo hiểm và hầu hết mọi người cho rằng nó thậm chí không biết những rủi ro đó là gì.

+0

Những rủi ro đó là gì? –

Các vấn đề liên quan