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

Wix Installer升级时ADDLOCAL参数致原有功能丢失,如何保留旧功能装新功能?

如何在Wix Installer升级时保留原有功能并安装新功能

你提到的思路完全正确!Windows Installer本身就提供了INSTALLED_FEATURES这个预定义属性,它会自动指代当前系统中已经安装的所有功能,刚好能满足你“保留原有N个功能 + 新增FEATURE_NEW”的需求。

为什么之前的命令会移除原有功能?

当你只指定ADDLOCAL=FEATURE_NEW时,Windows Installer会将其理解为“仅安装FEATURE_NEW这一个功能”,因此会自动移除之前已经安装的FEATURE1、FEATURE2等未被列在ADDLOCAL中的功能——这是Windows Installer的默认行为,它会严格按照你指定的功能集合来维护安装状态。

正确的命令写法

你只需要把INSTALLED_FEATURES和新功能一起加入ADDLOCAL参数即可,注意/v后面的参数要整体用引号包裹(避免空格导致参数解析错误):

setup.exe /v"/qn ADDLOCAL=INSTALLED_FEATURES,FEATURE_NEW"

或者你也可以直接调用msiexec(有时候更直观):

msiexec /i your_installer.msi /qn ADDLOCAL=INSTALLED_FEATURES,FEATURE_NEW

额外注意事项

  • 确保原有功能的AllowAdvertise属性没有被设置为no(Wix默认是允许的,一般无需额外配置),否则INSTALLED_FEATURES可能无法正确识别这些功能。
  • 如果FEATURE_NEW依赖其他未安装的功能,你需要把依赖功能也加入ADDLOCAL,或者确保你的安装包已经配置了自动处理依赖的逻辑。
  • 执行命令前,可以先用msiexec /i your_installer.msi /qb(半交互模式)测试一下,确认功能选择符合预期,再换成/qn静默模式。

这样执行后,Windows Installer会保留所有已安装的原有功能,同时安装FEATURE_NEW,完全符合你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:27:16