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

如何将PROPERTY=VALUE从WiX引导程序传递至安装程序?

解决WiX引导程序传递自定义属性的问题

要让WiX引导程序(Burn)接收命令行传入的ENABLE_TOGGLE属性并传递给内部MSI,需按以下步骤配置:

1. 在Bundle中声明可覆盖的变量

引导程序不会自动识别命令行参数,必须显式定义对应变量并允许外部覆盖。在Bundle元素内添加:

<Variable Name="ENABLE_TOGGLE" Type="string" Value="0" bal:Overridable="yes" />

2. 添加Bal扩展命名空间

在Wix根元素中声明bal命名空间(Overridable属于Bal扩展特性):

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
     xmlns:bal="http://schemas.microsoft.com/wix/BalExtension">

3. 将变量映射到MSI属性

在<MsiPackage>内通过变量引用传递属性值:

<MsiPackage SourceFile="setup.msi">
  <MsiProperty Name="ENABLE_TOGGLE" Value="[ENABLE_TOGGLE]" />
</MsiPackage>

4. 确保MSI中的属性配置正确

MSI内的ENABLE_TOGGLE必须是全大写的公共属性且已定义,比如在Product元素内添加:

<Property Id="ENABLE_TOGGLE" Value="0" />

5. 编译时链接Bal扩展

使用light.exe编译时需引用WixBalExtension.dll,命令行示例:

light.exe yourproject.wixobj -ext WixBalExtension -out bootstrapper.exe

关键说明

  • 之前直接用[ENABLE_TOGGLE]无效,是因为Bundle未定义该变量,引导程序无法自动将命令行参数传递给MSI,必须显式声明并标记为可覆盖。
  • 命令行执行需注意格式:bootstrapper.exe /q ENABLE_TOGGLE=1(若你的引导程序文件名是boostrapper.exe则保持原拼写)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 10:53:19