簡體   English   中英

使用WIX升級版本

[英]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&lt;&gt;"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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM