Jus*_*tin 13 windows-installer wix bootstrapper burn
我正在考虑使用Burn作为安装程序的引导程序,我需要将几个参数传入MSI.
我知道这样做的方法是使用MsiProperty元素,我遇到的问题是显示UI来捕获这些属性.我知道我可以通过托管引导程序应用程序主机创建一个完全自定义的UI,但是这对于对引导程序进行相对较小的调整实现了很多工作.
我发现这篇博客文章描述了如何进行基本的UI自定义,并想知道是否可以修改Burn UI以包含一个简单的复选框/文本框(其值用于设置Burn变量,以便我可以将其传递给我MSI)以类似的方式,或者我是否需要使用托管引导程序应用程序主机?
Jus*_*tin 34
我无法在任何地方找到任何相关的文档,但是一些实验+通过源代码阅读可以看出这是相当简单的 - 只需将Name控件(例如Checkbox)设置为Burn变量的名称(不是WiX变量) - 它们是不同的),就像这样(请参阅刻录UI自定义以获取有关放置此位置的更多信息)
<Checkbox Name="MyCheckBox" ...>Hello, checkbox</Checkbox>
Run Code Online (Sandbox Code Playgroud)
如果您愿意,可以在捆绑包下面定义一个刻录变量,将其初始化为某个值(使用1表示"勾选",0表示"未勾选"复选框)
<Variable Name="MyCheckBox" Value="1" />
Run Code Online (Sandbox Code Playgroud)
但是它不是必需的 - 无论如何都会自动为您创建变量.请注意,它需要是a Variable,而不是WixVariable- 这些是不同的.
最后,基于此变量设置MSI属性,将MsiProperty元素添加为元素的子MsiPackage元素,就像这样
<MsiPackage Name="MyMsi.msi" ...>
<MsiProperty Name="SOMEPROPERTY" Value="[MyCheckBox]" />
</MsiPackage>
Run Code Online (Sandbox Code Playgroud)
根据复选框的选中状态,MSI属性"SOMEPROPERTY"的值将设置为0或1.