如何在 WiX 中执行仅在安装或卸载时执行的自定义操作?
Posted
技术标签:
【中文标题】如何在 WiX 中执行仅在安装或卸载时执行的自定义操作?【英文标题】:How can I perform a custom action in WiX that only executes on install or uninstall? 【发布时间】:2013-06-29 00:19:24 【问题描述】:我有两个自定义操作,其中一个我想在安装我的产品时执行,另一个在卸载时执行。
我的自定义操作当前是在“InstallFinalize”之后从合并模块调用的,但安装和卸载都会发生这种情况。我尝试添加“未安装且未升级产品代码”条件,但这给了我一个错误:
错误 2762。无法写入脚本记录。交易未开始。
我也尝试过附加到其他操作(例如,UnpublishComponents),但我找不到任何唯一可以安装或卸载的操作。
我该如何解决这个问题?
【问题讨论】:
How to add a WiX custom action that happens only on uninstall (via MSI)?的可能重复 【参考方案1】:应该使用的变量“INSTALLED
”是“Installed
”。在 *** 回答 How to add a WiX custom action that happens only on uninstall (via MSI)? 中查找有关安装和卸载条件的更多信息。
【讨论】:
【参考方案2】:尝试下一个1.
仅用于安装:
<InstallExecuteSequence>
<Custom Action="SomeAction" After="InstallFinalize">NOT Installed AND NOT REMOVE</Custom>
</InstallExecuteSequence>
2.
卸载尝试使用:Rob's answer
UPGRADINGPRODUCTCODE 属性仅在RemoveExistingProducts
CA 期间设置。
【讨论】:
非常感谢,这就是方法。以上是关于如何在 WiX 中执行仅在安装或卸载时执行的自定义操作?的主要内容,如果未能解决你的问题,请参考以下文章