You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Wix Installer:控制自定义脚本仅在指定安装/升级/卸载场景执行一次

Wix Installer 自定义脚本执行条件修正方案

你当前的配置在升级场景下会触发两次脚本,问题出在新版本安装阶段Not Installed AND NOT UPGRADINGPRODUCTCODE条件会成立,导致重复执行。需要调整条件逻辑,借助OLDPRODUCTS属性区分全新安装和升级流程里的新版本安装环节。

修改后的配置如下:

<InstallExecuteSequence>
  <!-- 脚本仅在全新安装、非升级卸载、升级时旧版本卸载阶段执行 -->
  <Custom Action='BackupPreviousVersionAction' After="InstallInitialize">
    (Not Installed AND NOT OLDPRODUCTS) OR (Installed AND REMOVE~="ALL")
  </Custom>
</InstallExecuteSequence>

条件逻辑说明

  • (Not Installed AND NOT OLDPRODUCTS):匹配全新安装场景,此时系统无已安装版本,也不存在待升级的旧产品,脚本执行1次。
  • (Installed AND REMOVE~="ALL"):覆盖两种场景:
    • 非升级的完全卸载:系统存在已安装版本,且执行完全卸载操作,脚本执行1次。
    • 升级时的旧版本卸载阶段:升级流程中旧版本会被完全卸载,此条件成立,脚本执行1次;而新版本安装阶段,Installed为假,Not Installed虽为真但OLDPRODUCTS存在,第一个条件不触发,因此不会重复执行。

场景验证

  • 全新安装:脚本执行1次
  • 常规卸载:脚本执行1次
  • 版本升级:仅在旧版本卸载阶段执行1次,新版本安装阶段不执行

内容的提问来源于stack exchange,提问作者Gilad Dahan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 10:15:38