WIX的卸载条件

Posted

技术标签:

【中文标题】WIX的卸载条件【英文标题】:Uninstallation condition for WIX 【发布时间】:2014-08-11 22:29:29 【问题描述】:

对于安装,我们有一个属性“Install”,如果它正在进行安装,我们可以在条件中使用它来执行。 卸载是否有类似的属性?

【问题讨论】:

您解决了这个问题吗? 【参考方案1】:

您可以使用REMOVE~="ALL" 来检测完全卸载


可以通过UPGRADINGPRODUCTCODE property 检测作为主要升级的一部分执行的卸载。


这里有一些进一步的建议和一些帮助资源:这里有一个 "MSI Conditions Cheat Sheet",可帮助您正确获取自定义操作的复杂 MSI 条件。该表对我来说看起来不错,但我没有对其进行详细测试 - 只是将链接与您自己的测试共享作为唯一保证。

此外,您还可以查看 Stefan Kruger 的 msifaq.com 了解常见 MSI 问题列表以及他的主要installsite.org 网站了解一般部署信息。

关于 Wix,请查看 this well known wix tutorial。我也会提供指向Windows Installer Best Practices list 的链接。

How to add a WiX custom action that happens only on uninstall (via MSI)?

【讨论】:

感谢您的精彩解释。已尝试 REMOVE~=ALL,但似乎不起作用。 这是我正在评估的条件 - 已安装或 VCREDIST_INSTALLED 或 REMOVE~="ALL" VCREDIST_INSTALLED 是评估是否已安装 VC++ 重分发器 您必须在引号 msdn.microsoft.com/en-us/library/aa368013(v=vs.85).aspx 中使用 ALL 并记住,如果您的产品具有可以添加和删除的功能,则与添加或删除功能相关的条件可能更有用. 谢谢@PhilDW,我已经得到了报价,但它还没有按预期工作。您所说的与该功能相关的条件是什么意思?如果未安装 VC++,我需要此检查以阻止安装/卸载继续进行 VCREDIST_INSTALLED 属性是如何设置的?暂时删除该属性并检查剩余条件是否按预期工作。

以上是关于WIX的卸载条件的主要内容,如果未能解决你的问题,请参考以下文章

Wix/Burn - 不运行 MSIPackage 的条件,因此不卸载应用程序

如何获取用户在安装 WIX 设置时输入的属性值?

卸载 WiX 时删除文件

WIX 自定义卸载操作失败

卸载时未删除Windows服务(WIX 3)

如何强制卸载损坏的 Wix 捆绑包