RemoveExistingProducts suppress = true

时间:2015-04-30 14:34:01

标签: wix windows-installer wix3 major-upgrade

我正在尝试抑制升级时删除现有产品的过程。我使用以下代码:

<RemoveExistingProducts Suppress='yes'></RemoveExistingProducts>

它抛出错误说: 请停止覆盖基本定义

2 个答案:

答案 0 :(得分:2)

你可能误解了升级是什么 - 这似乎是一个相当普遍的误解。

主要升级(RemovePreviousVersions)不是修补程序,修补程序或您可能认为更新当前安装的产品中的文件的任何内容。主要升级是完整产品安装的完整工作产品,恰好包括删除早期版本(如果已安装)。执行主要升级的要求包括具有更高的产品版本和不同的产品代码。

另一方面,如果您要安装同一产品的两个“副本”,则只需不要使用主要升级,并更改产品代码(和包代码)。您将获得安装了相同产品的两个副本,以及这些副本是否有效取决于应用程序的两个副本是否能够很好地协同工作以及是否可以在不损坏另一个副本的情况下卸载一个副本。

答案 1 :(得分:0)

为什么要抑制升级? RemoveExistingProducts是实现Windows Installer major upgrade的核心部分 - 升级到应用程序的更高版本的标准方法 - 例如从1.0版到2.0版。 RemoveExistingProducts操作将根据Upgrade table中的设置删除或检查系统上是否存在现有版本。您可以创建此表以卸载所需的任何MSI文件,并且可以添加检查某些软件包是否已安装的条目,然后中止并向用户发出安装先前版本的警告 - 通常用于进行较低版本的设置意识到安装了更高版本然后中止。

更多关于通过Wix进行升级的信息:http://wix.tramontana.co.hu/tutorial/upgrades-and-modularization

或许可以快速查看这些“Wix快速入门”建议:MSI vs nuget packages: which are is better for continuous delivery?