我有一個wix捆綁包,有4個MSI - 所有版本都是1.0.0,捆綁版本是1.0.0。我將它安裝在Windows機器上,在ARP中,我將WiX捆綁包看作1.0.0。wix捆綁只安裝更改msi
現在我僅對其中一個MSI進行一些更改(如B),並將Bundle版本更改爲1.1.0,將更改後的MSI(B)版本更改爲1.1.0。其餘的MSI(A,C,D)仍然在1.0.0。
現在,當我再次運行該軟件包時,我預計A,C和D的安裝將被跳過,只有B將被升級,並且該軟件包也將在ARP中的版本1.1.0中進行更新。但我觀察到的是所有包裝(A,B,C,D)的安裝發生,而不僅僅是B.
那麼我的期望錯了還是我做錯了什麼?
這是我在我的包代碼
<Chain>
<MsiPackage Id=「A"
Cache="no」
Vital=「yes"
EnableFeatureSelection="no"
Permanent="no" Visible="no"
ForcePerMachine=「yes」
SourceFile = 「<>」/>
<MsiPackage Id=「B"
Cache="no」
Vital=「yes"
EnableFeatureSelection="no"
Permanent="no" Visible="no"
ForcePerMachine=「yes」
SourceFile = 「<>」/>
</Chain>
而這就是我在我的WXS對個人的MSI。我僅將MSI B的版本更改爲1.1.0,並保持UpgradeCode相同。
<Product Id="*" UpgradeCode="<GUID which is same across installations>"
Version="1.0.0" />
<MajorUpgrade DowngradeErrorMessage="New version is present."
我擡頭看了很多線程,但通常他們會談論升級所有MSI,而不是1 MSI。如果有事情不清楚,請告知我,並提前感謝您的幫助。
另外要注意的是,如果您尚未使用該工具,則可以使用Microsoft的Orca.exe檢查您的MSI。 –
或instedit,即具有比較MSI功能。 –
感謝評論@ArkadySitnitsky和BrianSutherland。我嘗試將AllowSameVersionUpgrades設置爲yes和no,但在兩種情況下都安裝了所有MSI。我想要的是安裝程序在版本相同的情況下跳過這些模塊,並且只在版本較大但未發生時才安裝。 – randomuser15995183