如何在WiX中执行只在安装或卸载时执行的自定义操作?

问题描述:

我有两个自定义操作,其中一个我想在产品安装时执行,另一个在卸载时执行。如何在WiX中执行只在安装或卸载时执行的自定义操作?

我的自定义操作当前是在“InstallFinalize”之后从合并模块中调用的,但这种情况在安装和卸载时都会发生。我已经尝试添加“未安装后未UPGRADINGPRODUCTCODE”条件,但是这给了我一个错误:

Error 2762. Cannot write script record. Transaction not started.

我还试图连接到其他操作(例如,UnpublishComponents),但我不能找到任何独特的安装或卸载。

我该如何解决这个问题?

+0

可能的重复[如何添加只发生在卸载(通过MSI)的WiX自定义操作?](http://*.com/questions/320921/how-to-add-a-wix-custom-行动,这只发生只在卸载通过msi) –

尝试下一
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)?