如果正在卸载已安装的功能,如何在WiX中执行自定义操作?

dsk*_*les 7 windows-installer custom-action wix

我有一个WiX安装程序,它具有需要在卸载时执行的每个功能的自定义操作.现在,我遇到了一个问题,即无论用户是否实际安装了该功能,操作都会执行.自定义操作失败,因为他们希望存在某些资源,然后整个安装陷入破坏状态.

当且仅当正在卸载其相关功能时,运行自定义操作的正确方法是什么?我已经包含了我目前正在使用的片段,如果有帮助的话.

<Custom Action="LaunchUninstallCustomAction" Before="RemoveFiles"><![CDATA[(NOT UPGRADINGPRODUCTCODE) AND (REMOVE="ALL") AND (&FeatureName<=2)]]></Custom>
Run Code Online (Sandbox Code Playgroud)

Sam*_*ack 16

尝试

<Custom Action="LaunchUninstallCustomAction" Before="RemoveFiles">
   <![CDATA[(NOT UPGRADINGPRODUCTCODE) 
             AND (&FeatureName=2) AND (!FeatureName=3)]]>
</Custom>
Run Code Online (Sandbox Code Playgroud)

有关条件语法和示例的详细信息,请参阅MSDN