我使用 WIX 安装测试产品。使用默认的 wix 设置非常简单。
如果我设置产品 id="*",安装,重建并再次安装,我的程序列表中有两个产品。为什么?
我的产品:
<Product Id="*" Name="SetupProject1" Language="1033" Version="1.0.6.4" Manufacturer="Timyrlan" UpgradeCode="B3CB410C-6D45-44F0-9920-81E43A54B3ED">
附:如果我更改版本的第四位数字,也会出现同样的问题。如果我更改 3 位数字,一切都会正常
1.0.0.0->1.0.0.1 - 问题
1.0.0.0->1.0.1.0 - 工作正常
为什么要安装两次?如何使用最后一位数字升级产品?
忽略数字:摘自 MSI SDK 文档ProductVersion property:
"Note that Windows Installer uses only the first three fields of the product version. If you include a fourth field in your product version, the installer ignores the fourth field...At least one of the three fields of ProductVersion must change for an upgrade using the Upgrade table.
"
允许相同版本升级:有一个WiX的概念:AllowSameVersionUpgrades="yes"- 我不喜欢 - 有些人用它来允许使用第四位数字进行升级。我没有列出所有导致的问题(再次强调:我不喜欢这个概念)。也许看看这里:修复重大升级问题.
高级升级表: 忘记一个重要的链接。如何获得升级表的细粒度控制:将条目添加到 MSI UpgradeTable 以删除相关产品。还有降级的问题:仅在卸载期间而不是主要升级期间运行 Wix 自定义操作.
更多有用的链接:
-
WIX 不卸载旧版本(重大升级常见问题列表)
-
WiX 提示和技巧(一般来说,WiX 上有很多进一步的链接)
-
如何避免 WiX/MSI 部署解决方案中的常见设计缺陷?(注意常见的 MSI / WiX 设计缺陷)
Links:
-
WIX(删除所有以前的版本)(按产品代码、升级代码、产品名称卸载)
-
在 Wix 中进行主要升级会在“添加/删除程序”中创建 2 个条目(主要升级 - “旧的手动方式”)
-
Installshield主要升级不会卸载旧版本(MSI API 调用)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)