Hiện tại tất cả các nâng cấp đều hoạt động tốt bất cứ khi nào cập nhật lên một số phiên bản mới hơn, tuy nhiên tôi nhận được một hành vi kỳ lạ khi hạ cấp. Có vẻ như nó sẽ gỡ cài đặt phiên bản hiện tại và sau đó cài đặt một phần phiên bản mà tôi đang cố gắng cài đặt, exe chính không tồn tại ở vị trí đích, nhưng các lối tắt được quảng cáo sẽ được tạo. Khi các phím tắt được quảng cáo được mở ra, nó sẽ hoàn thành việc cài đặt (có lẽ là làm một sửa chữa) và sau đó nó sẽ chạy tốt.WiX "Nâng cấp chính" không hoàn toàn cài đặt ứng dụng khi hạ cấp
Có ai có bất kỳ ý tưởng nào về việc điều này đang xảy ra không?
khối nâng cấp của tôi trông như thế này:
<UpgradeVersion Minimum="0.0.0.0" Maximum="99.0.0.0" Property="PREVIOUSVERSIONSINSTALLED" IncludeMinimum="yes" IncludeMaximum="no" IgnoreRemoveFailure="yes" />
(Các IgnoreRemoveFailure là một nỗ lực để khắc phục vấn đề này, nhưng nó không xuất hiện để có làm gì)
Trong InstallExecuteSequence tôi của tôi đã <RemoveExistingProducts After="InstallValidate" />
Ngoài ra tôi có Product Id="*"
và Package Id="*"
Lý do hạ cấp là cần thiết vì ứng dụng khách cần chạy cùng phiên bản với máy chủ để đảm bảo khả năng tương thích và toàn bộ quá trình cần phải được tự động sao cho các phiên bản máy khách/máy chủ không khớp khi đăng nhập người dùng chỉ có thể nhấp vào "có" và phiên bản thích hợp được tải xuống, cài đặt và bắt đầu. Điều này đang làm việc cho đến nay để nâng cấp, nhưng đối với hạ cấp một bước unintuitive thêm là cần thiết để khởi chạy lại các ứng dụng bằng tay và sau đó nhìn thấy một cửa sổ cài đặt hộp thoại bật lên trước khi nó ra mắt.
Kết quả cuối cùng là bất kể nâng cấp hoặc hạ cấp, phiên bản hiện tại cần được gỡ cài đặt hoàn toàn và phiên bản đã tải xuống được cài đặt đầy đủ, vì vậy nếu có cách khác để thực hiện điều đó, đó cũng sẽ là câu trả lời hay.
Tôi có vấn đề bất tận với điều này thậm chí ngày hôm nay. WiX đã thêm một phần tử "MajorUpgrade" mới được cho là sẽ làm cho mọi thứ trở nên khó khăn hơn. Chúng tôi đang sử dụng này ngay bây giờ, nhưng ngay cả như vậy, hạ cấp có cùng một vấn đề như trước. Sự khác biệt bây giờ là nó loại bỏ một vài thủ phạm: (1) InstallExecuteSequence (2) Phần tử UpgradeVersion. – Trejkaz