【发布时间】:2015-08-19 21:35:01
【问题描述】:
我有 WiX 的 Product Id="*" 和 AllowSameVersionUpgrades="yes",因此我可以拥有 1 个具有不同功能的安装程序(不同的示例图像,但相同的 .exe)。
并且我希望能够在同一台机器上安装多个版本,因此只添加新功能,而旧功能保留在文件夹中。但是旧功能总是被删除。有没有办法处理正确的方法,也许使用自定义操作?
【问题讨论】:
标签: wix uninstallation
我有 WiX 的 Product Id="*" 和 AllowSameVersionUpgrades="yes",因此我可以拥有 1 个具有不同功能的安装程序(不同的示例图像,但相同的 .exe)。
并且我希望能够在同一台机器上安装多个版本,因此只添加新功能,而旧功能保留在文件夹中。但是旧功能总是被删除。有没有办法处理正确的方法,也许使用自定义操作?
【问题讨论】:
标签: wix uninstallation
对于任何有类似问题的人,我找到的解决方案是创建一个属性:
<Property Id="DELFILES" Secure="yes"/>
Secure="yes" 非常重要,否则在运行安装程序时将无法读取该属性的值。
然后为自定义操作添加这个条件:
<![CDATA[(REMOVE = "ALL") AND (DELFILES = "TRUE")]]>
最后安装我只需调用 .msi 并传递参数:
MsiExec.exe /x MyInstaller.msi DELFILES="TRUE"
【讨论】: