Tôi có một tệp được chia sẻ, chúng tôi sẽ gọi nó là Utility.dll được cài đặt bởi nhiều sản phẩm. Trong tệp WIX của tôi, tôi cài đặt Utility.dll như một thành phần riêng biệt. Bây giờ phiên bản 2.0 của tài liệu tham khảo Utility.dll thêm một dll, UtilityUtility.dll mà sẽ cần phải được cài đặt cùng với.WIX thêm tệp mới vào thành phần được chia sẻ
Lần đầu tiên tích hợp UtilityUtility.dll, tôi đã tạo thành phần WIX mới chứa dll mới.
này gây ra vấn đề trong các tình huống sau
1) tài cài đặt sản phẩm 1 {Utility.dll 1,0}
2) tài cài đặt sản phẩm 2 {Utility.dll 2.0, UtilityUtility.dll 2,0}
3) người dùng gỡ bỏ sản phẩm 2 {Utility.dll 2,0}
Bây giờ khi người dùng sử dụng Utility.dll nó sẽ thất bại khi nó không thể tìm ra tham chiếu UtilityUtility.dll
Điều này dẫn tôi để thêm UtilityUtility.dll để thành phần gốc ngăn cản Ut ilityUtility.dll bị loại bỏ trong kịch bản trước nhưng đi kèm với vấn đề riêng của nó.
1) tài cài đặt sản phẩm 1 {Utility.dll 1,0}
2) tài cài đặt sản phẩm 2 {Utility.dll 2.0, UtilityUtility.dll 2,0}
3) tài tháo gỡ sản phẩm 2 {Utility.dll 2.0, UtilityUtility .dll 2.0}
4) Gỡ cài đặt người dùng Sản phẩm 1 {UtilityUtility.dll 2.0}
UtilityUtility.dll bị mồ côi vì nó không bị xóa bỏ khi gỡ cài đặt Product 1 (nó không tồn tại trong thành phần khi nó ban đầu Cài đặt).
Tôi có tùy chọn nào khác ở đây không?
Cảm ơn
Với kịch bản đầu tiên sẽ cài đặt lại/sửa chữa Product1 sau khi Unistall của Product2 sử dụng REINSTALLMODE = a (hoặc amus) sửa chữa tình huống? Tôi có một dự án thử nghiệm tương tự và có vẻ như sửa chữa thay thế v2 DLL với v1 –
Có, sửa chữa Product1 bằng REINSTALLMODE = a sẽ buộc tất cả các tệp trong gói đó trên máy, có khả năng vi phạm bất kỳ tệp được chia sẻ nào khác. "a" là một cái búa rất tàn bạo để xoay. –
Bài đăng Rob đề cập đến về Quy tắc thành phần, tôi tin rằng, được chuyển đến http://robmensching.com/blog/posts/2003/10/18/Component-Rules-101 – adamjcooper