最近我发布了一个版本为0.8.3
的软件包,我现在准备发布一个新软件包了。但是,我正在努力实施Major Upgrade
/ Upgrade
。似乎WIX_UPGRADE_DETECTED
变量从未填充过。
然后我跑过WiX3 major upgrade not working,接受的答案说明:
- 所有安装版本(同样,不是文件版本)必须为1.0或更高。
醇>
确实暂时将两个软件包的主要版本提升为1似乎解决了这个问题。但是,我无法追溯更改旧软件包的版本,因为它已安装在数千台计算机上。
在安装新软件包的同时彻底卸载旧软件包的最佳方法是什么?有没有比设置运行CustomAction
的{{1}}更好的方法?
答案 0 :(得分:0)
只要您的升级代码在各版本之间保持稳定,您只需要正确创作的升级表包含您要升级的版本。
您使用什么构造来实现主要升级?你使用MajorUpgrade element
吗?它应该可以直接开箱即用:
<MajorUpgrade Schedule="afterInstallInitialize"
DowngradeErrorMessage="A later version of [ProductName] is already installed. Setup will now exit."
AllowDowngrades="no" AllowSameVersionUpgrades="no" />
也许您正在使用旧式主要升级元素:How to implement WiX installer upgrade?。
您应该向我们提供您用于实施重大升级的WiX代码段 。
我会确保您升级表中指定的最高版本与您当前正在安装的安装版本相同 。
一些链接 :
数目:
文档: