我有一个WiX安装程序,它具有需要在卸载时执行的每个功能的自定义操作。现在我遇到了一个问题,即无论用户是否实际安装了该功能,操作都会执行。自定义操作失败,因为他们希望存在某些资源,然后整个安装陷入破坏状态。
当且仅当正在卸载其相关功能时,运行自定义操作的正确方法是什么?我已经包含了我目前正在使用的片段,如果有帮助的话。
<Custom Action="LaunchUninstallCustomAction" Before="RemoveFiles"><![CDATA[(NOT UPGRADINGPRODUCTCODE) AND (REMOVE="ALL") AND (&FeatureName<=2)]]></Custom>
答案 0 :(得分:16)
尝试
<Custom Action="LaunchUninstallCustomAction" Before="RemoveFiles">
<![CDATA[(NOT UPGRADINGPRODUCTCODE)
AND (&FeatureName=2) AND (!FeatureName=3)]]>
</Custom>
答案 1 :(得分:-3)
听起来自定义操作已被破坏,而且无法正确处理缺少的资源。
如果用户手动删除文件,CA将如何处理?如果用户删除应用程序文件夹,然后尝试通过ARP删除它会发生什么?
如果用户在不卸载整个应用程序的情况下删除某个功能,会发生什么?你可以更好地长期修复CA.