升级具有主要版本零的WiX生成的包

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了升级具有主要版本零的WiX生成的包相关的知识,希望对你有一定的参考价值。

最近我发布了一个版本为0.8.3的软件包,我现在准备发布一个新软件包了。然而,我正在努力实施Major Upgrade / Upgrade。似乎WIX_UPGRADE_DETECTED变量从未填充过。然后我跑过WiX3 major upgrade not working,接受的答案说:

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

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

答案

只要您的升级代码在不同版本之间保持稳定,您只需要正确创建升级表以包含要升级的版本。

您使用什么构造来实现主要升级?你使用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代码段。

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


一些链接:

回答:

文档:

以上是关于升级具有主要版本零的WiX生成的包的主要内容,如果未能解决你的问题,请参考以下文章

WiX创建了msi文件,奇怪的主要升级行为

如何在 WIX 中的包的安装条件中使用可执行文件的退出代码

卸载升级时如何摆脱wix中未使用的dll

Wix Custom BA 正确处理升级

在 Wix 中修改产品版本

如何在 Wix 主要升级期间防止数据库丢失