Tôi đang đấu tranh để kích hoạt chức năng nâng cấp chính trong WiX.Làm cách nào để nâng cấp chính WiX hoạt động?
Tôi muốn mọi phiên bản mới của trình cài đặt là nâng cấp chính (gỡ cài đặt đầy đủ, sau đó cài đặt mới) vì chúng tôi không muốn các phiên bản nâng cấp và cài đặt sạch khác nhau.
Tôi đã bắt đầu cố gắng thực hiện việc này bằng cách sử dụng thẻ, nhưng tôi tiếp tục nhận được "Phiên bản khác được cài đặt". thông báo lỗi khi tôi chạy trình cài đặt.
Vì vậy, tôi đã triển khai thẻ mới đã được thêm vào trong V3.5 để nâng cấp dễ dàng hơn. Tôi vẫn nhận được thông báo lỗi.
Sau đó tôi đọc ở đâu đó mà bạn cần thay đổi GUID Id cho mỗi phiên bản mới. Vì vậy, tôi đặt Id = "*" để WiX tạo chúng.
Bây giờ khi tôi cài đặt phiên bản mới hơn, nó sẽ không gỡ cài đặt phiên bản cũ hơn và bạn kết thúc với hai cài đặt vào cùng một thư mục. Tôi làm việc này bởi vì chạy MSI (mới hoặc cũ) sẽ mang đến màn hình sửa chữa/gỡ bỏ.
Ngoài ra chương trình không được ghi đè bằng phiên bản mới.
Đây là sự khởi đầu của kịch bản WiX tôi:
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="*"
Name="Foo"
Language="1033"
Codepage="1252"
Version="!(bind.FileVersion.Foo.exe)"
Manufacturer="Foo Bar Ltd."
UpgradeCode="dac2fab2-7d76-4e47-b25f-0748380dab81">
<Package
Description="Foo"
Comments="This installer database contains the logic and data required to install Foo."
InstallerVersion="300"
Languages="1033"
SummaryCodepage="1252"
Platform="x86"
Compressed="yes" />
<!-- Remove older versions -->
<!-- Important note: MSI ignores the last version digit 1.0.0.? when comparing versions, so always change at least the 3rd digit for new external releases-->
<MajorUpgrade DowngradeErrorMessage="The version currently installed is newer than the version you are attempting to install."/>