0

最近我发布了一个版本化的包0.8.3,我现在准备发布一个新包。但是,我正在努力实施Major Upgrade/ Upgrade。似乎该WIX_UPGRADE_DETECTED变量从未填充过。然后我遇到了WiX3 主要升级无法正常工作的地方,接受的答案指出:

  1. 所有安装版本(同样,不是文件版本)必须是 1.0 或更高版本。

实际上,暂时将两个软件包的主要版本都设置为 1 似乎可以解决这个问题。但是,我无法追溯更改旧软件包的版本,因为它已经安装在数千台计算机上。在安装新软件包时彻底卸载旧软件包的最佳方法是什么?有没有比设置CustomAction运行更好的方法msiexec.exe /x {PRODUCT-CODE}

4

1 回答 1

0

只要您的升级代码在版本之间是稳定的,您只需要正确编写升级表以包含您要升级的版本。

你使用什么结构来实现你的主要升级?你用MajorUpgrade element吗?它应该可以直接开箱即用:

<MajorUpgrade Schedule="afterInstallInitialize" 
              DowngradeErrorMessage="A later version of [ProductName] is already installed. Setup will now exit." 
              AllowDowngrades="no" AllowSameVersionUpgrades="no" />

也许您正在使用老式的主要升级元素:如何实现 WiX 安装程序升级?.

您应该向我们提供您用于实现重大升级的 WiX 代码段

我会确保您的升级表中指定的最高版本与您当前正在安装的安装版本相同


一些链接

答案:

文档:

于 2018-05-27T12:36:44.483 回答