无需卸载现有版本即可升级WiX

时间:2017-11-15 12:37:45

标签: wix windows-installer upgrade

WiX中的MajorUpgrade元素似乎正在卸载现有版本。但我有一个要求,我必须在不卸载1.0.0的情况下从1.0.0升级到2.0.0。但这并不意味着,它将在添加/删除程序中显示1.0.0和2.0.0。我的1.0.0版本有一个文件,一个注册表项,一个自定义Windows服务等等。我的2.0.0本质上将修改现有文件并添加新文件。在我们的例子中,可以只进行这些更改并仍然增加主要版本。但为此,我不想卸载并重新安装服务等等。但如果是全新安装,则必须安装所有组件。例如,如果客户安装了7.9.0版本并且想要升级到8.0.0(这在技术上可能是主要升级,因为主要版本已更新或次要升级,因为可能只有从7.9.0到8.0的增量更改.0?),完全卸载7.9.0可能会导致数据丢失等问题。有没有办法实现这个目标?如果是这样,有人可以提供一些步骤/示例或提供一些显示此链接的链接吗?注意:我谈论Patch。我能够得到一个补丁工作。但我也对Minor upgrade和Small update感到困惑。

FireGiant's Tutorial谈及使用< Upgrade>元素,而有许多其他文章谈论使用< MajorUpgrade>元件。

1 个答案:

答案 0 :(得分:0)

jbudreau是对的。有两种不同类型的主要升级。早期的主要升级会在安装新版本之前卸载现有版本。这是您在帖子中解释的行为。

查看执行序列表并将RemoveExistingProducts操作移到InstallFinalize之后,现在这将成为后期升级,它将使用组件规则覆盖现有文件,然后删除任何应该存在的文件除去。