[英]upgrade version using WIX
我使用WIX工具集(3.10)制作了一個安裝程序。 我想啟用升級,但我不能讓它工作。 每次運行msi時都會安裝另一個版本。 我無法弄清楚出了什么問題。 任何人都可以建議嗎?
<Product Id="*"
Name="$(var.PRODUCTNAME)"
Language="1033"
Version="$(var.PRODUCTVERSION)"
Manufacturer="Manufacturer"
UpgradeCode="UPGRADE_CODE"
>
<Package InstallerVersion="200"
Compressed="yes"
InstallScope="perMachine" />
<MajorUpgrade Schedule="afterInstallInitialize"
AllowDowngrades="no"
AllowSameVersionUpgrades="no"
DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
<MediaTemplate EmbedCab="yes" />
我為UpgradeCode
使用GUID(我想這是UPGRADE_CODE
意思)。
您還可以設置REINSTALLMODE
屬性以更改重新安裝行為。
它可能看起來像這樣:
<SetProperty Id="REINSTALLMODE" Value="amus" After="FindRelatedProducts">Installed AND REMOVE<>"ALL"</SetProperty>
要知道, a
將重新安裝你的產品無論安裝的版本。 但您可以查找安裝程序所需的字符。
對於Value="amus"
您可以在此處參考Microsoft文檔
AllowSameVersionUpgrades =“yes”可能會解決這個問題。 在測試升級時,您需要始終更新安裝程序之間的版本(前3個部分之一),或者只允許相同的版本升級。
來自wix網站
設置為no(默認值)時,MSI允許安裝具有相同版本和升級代碼(但產品代碼不同)的產品,並將其視為兩個產品。 設置為yes時,WiX會設置msidbUpgradeAttributesVersionMaxInclusive屬性,該屬性告訴MSI將產品視為與主要升級版本相同的版本。
因此,您的安裝認為這兩個安裝是分開的,即使它們共享相同的升級代碼,這就是您在添加刪除程序列表中獲得2個副本的原因。
除了您MajorUpgrade
財產至關重要的是,你UpgradeCode
不會在將來的版本改變。 可能是問題嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.