我有一个WiX 3.6捆绑包(使用Burn)和管理的引导程序,安装了几个MSI包。一些软件包安装到一个公共位置(C:program filesMyApp
)。
我想让用户选择安装位置在托管引导程序应用程序(c# WPF,特别是因为应用程序是大的安装;大约1 GB)。我如何为我的bundle中的每个MSI包指定INSTALLLOCATION ?
为每个MsiPackage使用MsiProperty子属性来指定INSTALLLOCATION=[BurnVariable]。然后使用引擎。
例如,在你的bundle中设置:
<Bundle ...>
<Variable Name='BurnVariable' Value='bar' />
...
<Chain>
<MsiPackage Source='pathtoyour.msi'>
<MsiProperty Name="INSTALLLOCATION" Value="[BurnVariable]" />
</MsiPackage>
</Chain>
</Bundle>
参见FireGiant对这个主题的解释。
然后在managed bootstrapper中,你可以做类似的事情:
Engine.StringVariables["BurnVariable"] = "C:program filesMyApp";