我有一个WiX 3.6 包(使用Burn)和安装多个MSI包的托管引导程序。一些软件包安装到一个公共位置 ( C:\program files\MyApp
)。
我想让用户在托管引导程序应用程序中选择安装位置(C# WPF,特别是因为应用程序很大,需要安装;大约 1 GB)。如何为我的捆绑包中的每个MSI包指定 INSTALLLOCATION?
为每个 MsiPackage使用MsiProperty子项以指定 INSTALLLOCATION=[BurnVariable]。然后使用 Engine.StringVariables 设置 BurnVariable。
例如,在您的捆绑包中设置:
<Bundle ...>
<Variable Name='BurnVariable' Value='bar' />
...
<Chain>
<MsiPackage Source='path\to\your.msi'>
<MsiProperty Name="INSTALLLOCATION" Value="[BurnVariable]" />
</MsiPackage>
</Chain>
</Bundle>
另请参阅有关此主题的FireGiant说明。
然后在托管引导程序中,您可以执行类似的操作:
Engine.StringVariables["BurnVariable"] = "C:\program files\MyApp";