如何在WiX中执行只在安装或卸载时执行的自定义操作?
问题描述:
我有两个自定义操作,其中一个我想在产品安装时执行,另一个在卸载时执行。如何在WiX中执行只在安装或卸载时执行的自定义操作?
我的自定义操作当前是在“InstallFinalize”之后从合并模块中调用的,但这种情况在安装和卸载时都会发生。我已经尝试添加“未安装后未UPGRADINGPRODUCTCODE”条件,但是这给了我一个错误:
Error 2762. Cannot write script record. Transaction not started.
我还试图连接到其他操作(例如,UnpublishComponents),但我不能找到任何独特的安装或卸载。
我该如何解决这个问题?
答
尝试下一1.
仅适用于安装:
<InstallExecuteSequence>
<Custom Action="SomeAction" After="InstallFinalize">NOT Installed AND NOT REMOVE</Custom>
</InstallExecuteSequence>
2.
对于卸载尝试使用:Rob's answer
UPGRADINGPRODUCTCODE属性时RemoveExistingProducts
CA.只设置
+0
非常感谢,这是做到这一点。 –
答
变量“INSTALLED
”应该使用的是“Installed
”。查找有关堆栈中安装和卸载条件的更多信息 溢出回答How to add a WiX custom action that happens only on uninstall (via MSI)?。
可能的重复[如何添加只发生在卸载(通过MSI)的WiX自定义操作?](http://stackoverflow.com/questions/320921/how-to-add-a-wix-custom-行动,这只发生只在卸载通过msi) –