我在任何地方都找不到任何关于此的文档,但是一些实验+阅读源代码表明这相当简单 - 只需将Name
控件(例如 Checkbox)的名称设置为 Burn 变量的名称(不是 WiX 变量- 它们是不同的),就像这样(有关将其放置在何处的更多信息,请参阅刻录 UI 自定义)
<Checkbox Name="MyCheckBox" ...>Hello, checkbox</Checkbox>
如果你喜欢,你可以在你的 bundle 下定义一个 burn 变量,将它初始化为某个值(使用 1 表示“已勾选”,使用 0 表示“未勾选”并带有复选框)
<Variable Name="MyCheckBox" Value="1" />
但是它不是必需的 - 无论如何都会自动为您创建变量。请注意,它必须是 a Variable
,而不是 a WixVariable
- 这些是不同的。
最后要设置基于此变量的 MSI 属性,添加一个MsiProperty
元素作为元素的子MsiPackage
元素,如下所示
<MsiPackage Name="MyMsi.msi" ...>
<MsiProperty Name="SOMEPROPERTY" Value="[MyCheckBox]" />
</MsiPackage>
MSI 属性“SOMEPROPERTY”的值将根据复选框的选中状态设置为 0 或 1。