如何强制将Wix Bundle设置为PerMachine全局安装?
解决Wix Bundle强制PerMachine安装的问题
针对你遇到的Bundle始终以PerUser模式安装、日志出现跨范围依赖警告的问题,可通过以下步骤排查解决:
显式指定Bundle的安装范围
在Bundle根元素中直接添加InstallScope="perMachine"属性,覆盖Burn的自动判断逻辑:<Bundle Name="YourBundleName" Version="x.x.x.x" Manufacturer="YourBrand" InstallScope="perMachine"> <!-- 你的Chain及组件定义 --> </Bundle>强制要求管理员权限
PerMachine安装需要管理员权限,若启动时未获取到,Burn会自动降级为PerUser模式。在Bundle中添加Elevated="required"强制权限:<Bundle ... Elevated="required">全面检查所有子包的配置
逐一验证Chain中的每个包:- MsiPackage必须设置
ForcePerMachine="yes",同时对应的MSI包内的Package元素需包含InstallScope="perMachine" - ExePackage必须设置
PerMachine="yes"
确保没有遗漏任何子包的配置,隐性的PerUser依赖会导致Bundle切换安装范围
- MsiPackage必须设置
清理残留与缓存
- 删除
C:\ProgramData\Package Cache中对应Bundle的缓存目录 - 检查注册表
HKCU\Software\Microsoft\Windows\CurrentVersion\Uninstall和HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall,移除Bundle的残留卸载项,再重新执行安装
- 删除
内容的提问来源于stack exchange,提问作者lcaumont
相关产品推荐
相关产品推荐

