0

I have a wix bundle which has say 4 MSIs - all with version 1.0.0 and Bundle version as 1.0.0. I install this on a windows machine and in the ARP I see the WiX bundle as 1.0.0.

Now I make some changes to only one of the MSIs, say B, and change the Bundle version to 1.1.0 and the changed MSI (B) version to 1.1.0. The rest of the MSIs (A, C, D) are still at 1.0.0.

Now when I run the bundle again, I expect that installation for A, C and D would be skipped and only B would be upgraded and the bundle will also be updated with version 1.1.0 in the ARP. But what I observe is that installation for all the packages (A,B,C,D) take place and not just B.

So is my expectation wrong or am I doing something wrong?

This is what I have in my bundle code

<Chain>

 <MsiPackage Id=“A"

              Cache="no” 

      Vital=“yes"

              EnableFeatureSelection="no"

              Permanent="no" Visible="no"

              ForcePerMachine=“yes” 

             SourceFile = “&lt;>”/>

   <MsiPackage Id=“B"

              Cache="no” 

      Vital=“yes"

              EnableFeatureSelection="no"

              Permanent="no" Visible="no"

              ForcePerMachine=“yes” 

             SourceFile = “&lt;>”/>

</Chain>

And this is what I have in my wxs for the individual MSIs. I change the version to 1.1.0 only for MSI B and keep the UpgradeCode same.

<Product Id="*" UpgradeCode="<GUID which is same across installations>"
         Version="1.0.0" />
<MajorUpgrade DowngradeErrorMessage="New version is present."

I looked up many threads but generally they talk about upgrading all the MSIs, just not 1 MSI. Let me know if something is unclear and thanks in advance for your help.

4

2 回答 2

3

如果包已经安装,Burn 将不会安装它。但是,如果您使用 重建包Product/@Id="*",则包标识会更改(产品代码和包代码)。所以 Burn 安装了一个看起来像新包的东西。如果您希望 Burn 跳过这样的包,请不要重新构建它。

于 2017-02-14T01:47:20.523 回答
1

majorUpgrade 元素的一部分有一个AllowSameVersionUpgrades属性,默认值为 no。

含义“当设置为 no(默认值)时,MSI 允许安装具有相同版本和升级代码(但产品代码不同)的产品并将其视为两个产品。当设置为 yes 时,WiX 设置 msidbUpgradeAttributesVersionMaxInclusive 属性,它告诉微星将同一版本的产品视为重大升级。”

检查此属性,看看它是否有助于解决您的问题。最佳实践是将版本更改为所有 msis 和捆绑包,这是发布产品的 CI/CD 管道的一部分自动完成的。

于 2017-02-13T13:58:55.513 回答