【问题标题】:Why versions of product with the same UpgradeCode were shipped as different products为什么具有相同 UpgradeCode 的产品版本作为不同的产品发货
【发布时间】:2026-02-15 13:40:02
【问题描述】:

我使用 Wix v3.9,我为我的产品设置了硬编码的升级代码,因为它是 the unique ID to identify a family of a product

对于产品代码,我使用“*”,以便为不同的版本生成不同的 ID。

在安装测试期间,我多次重建了我的安装程序,因此每次构建都会生成一个新的 ProductCode。

现在,在测试了几次安装后,我从“控制面板 -> 程序”中看到 我的产品被安装了多次。为什么?

【问题讨论】:

  • 从我的问题中提供的链接中,我了解到如果 MSI 是使用不同的 ProductCode 和不同的 PackageCode 构建的,安装程序会认为它是一个新产品。是答案吗? WiX 文档说在编译产品时,我不应该明确设置 Package Code,所以我还没有这样做。

标签: wix wix3 windows-installer


【解决方案1】:

只有在升级表设置为删除匹配的 UpgradeCode 和 ProductVersion 范围时,更新的 MSI 才会卸载 MSI。在 Wix 中执行此操作的最简单方法是使用 MajorUpgrade 元素。

【讨论】:

  • 我这样使用这个元素:
    我检查了文档中的 MajorUpgrade 元素 - 在我的情况下,MSI 将我的产品版本视为两种不同的产品,因为 默认情况下 AllowSameVersionUpgrades 为否 .所以,谢谢你的回答!
  • 再一次,wix 可能会以某种方式忽略它,无论如何你最终都会得到多个条目......
猜你喜欢
相关资源
最近更新 更多
热门标签