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

关于Advanced Installer更新时Product Code设置及覆盖安装的技术问询

解决方案:Advanced Installer实现覆盖安装或自动卸载旧版本重装

一、核心规则说明

Windows Installer(MSI)与InnoSetup/SetupBuilder这类脚本式安装工具机制本质不同:MSI是基于组件的标准化安装系统,严格依赖Upgrade Code、Product Code与版本号的关联逻辑:

  • Upgrade Code:标识同一产品线,所有版本必须保持一致,用于系统检测已安装的同系列产品
  • Product Code:标识特定版本的产品,只要版本号前三位(Major.Minor.Patch)变更,Windows Installer强制要求更换Product Code(此为系统级限制,并非Advanced Installer的自定义规则)
  • 同版本(四位版本号完全一致)的MSI包,默认不允许重复安装,因相同Product Code会触发“已安装该产品”提示

二、实现新旧版本及同版本直接覆盖安装

1. 新旧版本覆盖(版本号变更)

严格遵循Windows Installer规则配置重大升级:

  • 保持所有版本的Upgrade Code完全一致
  • 当版本号Major/Minor/Patch任意段变更时,直接确认Advanced Installer生成的新Product Code
  • 在Advanced Installer的Upgrades页面配置:
    • 点击Add创建重大升级条目
    • 设置Detect existing products为Yes,Action on existing product选择Remove existing installation或Remove and install new version
    • 若需支持新版本覆盖旧版本、旧版本也可覆盖新版本,勾选Allow downgrades
    • 调整Minimum version和Maximum version范围,确保覆盖所有需要升级的旧版本区间

2. 同版本覆盖安装(版本号完全一致)

MSI默认禁止同版本重复安装,可通过以下两种方式实现:

  • 方式一:用修复模式替代覆盖
    使用命令行执行:msiexec /i [安装包路径] REINSTALL=ALL REINSTALLMODE=amus,此命令会修复现有安装并覆盖所有文件,等效于覆盖安装。若需封装到安装包内,可在Custom Actions页面添加启动动作,检测到同版本已安装时自动触发该修复命令。
  • 方式二:允许同版本多实例(不推荐生产环境)
    在Install Parameters页面添加属性MSINEWINSTANCE=1(值设为1),此配置允许创建同版本新实例,但会导致系统中存在多个相同版本的产品条目,仅适合测试场景。

三、自动卸载旧版本后重装的配置

若倾向于先卸载旧版本再安装新版本,按以下步骤配置:

  1. 确保所有版本共用同一个Upgrade Code
  2. 在Upgrades页面创建重大升级条目,将Action on existing product设置为Uninstall existing installation first, then install new version
  3. 按需配置卸载选项:
    • 勾选Preserve user settings以保留用户配置文件
    • 设置Wait for existing product to be removed为Yes,确保卸载完成后再启动新安装
  4. 若需覆盖同版本,可在Custom Actions页面添加前置检测动作:检测到同版本已安装时,先执行卸载命令msiexec /x [旧版本Product Code] /qn,再启动新安装流程

四、关键注意事项

  • 所有版本必须保持Upgrade Code一致,否则无法检测到旧版本
  • 严格遵循Windows Installer的Product Code变更规则,避免导致系统安装信息混乱
  • 测试需覆盖全场景:旧版本→新版本、新版本→旧版本(若允许降级)、同版本覆盖

内容的提问来源于stack exchange,提问作者Nathaniel Hale

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 22:00:18