【发布时间】:2017-02-13 13:47:27
【问题描述】:
我有一个 wix 捆绑包,其中包含 4 个 MSI - 全部版本为 1.0.0,捆绑包版本为 1.0.0。我将它安装在 Windows 机器上,在 ARP 中我看到 WiX 包为 1.0.0。
现在我只对其中一个 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。如果有什么不清楚的地方请告诉我,并提前感谢您的帮助。
【问题讨论】:
标签: wix installation upgrade major-upgrade