Wix - 仅在升级和修补时运行自定义操作,而不是在修复/重新安装时运行自定义操作

Aar*_*ton 3 windows installation windows-installer wix

我只想在升级和修补程序上运行 Wix 自定义操作,而不是安装/重新安装或修复。因此,基本上只有当应用程序的版本号增加时,才应该运行此自定义操作。我尝试了以下规则,它在修补时完全禁用了自定义操作:

<Custom Action="upgrade_action"
        Before="InstallFinalize">Installed AND NOT REMOVE AND UPGRADINGPRODUCTCODE</Custom>
Run Code Online (Sandbox Code Playgroud)

我可以做什么来实现这个目标?

Phi*_*lDW 6

如果这是新的主要升级产品并且您正在使用 WiX MajorUpgrade 元素,则在进行升级并检测到旧版本时会设置 WIX_UPGRADE_DETECTED 属性。UPGRADINGProductCODE 在正在升级的旧产品(已安装的产品)中设置。

如果您希望 CA 仅在其中任何一个条件下运行,那么看起来您所需要的只是 WIX_UPGRADE_DETECTED 或 PATCH。