我有一个WiX 3.6软件包(使用Burn)和托管引导程序,可以安装多个MSI软件包。某些软件包安装到公共位置(C:\program files\MyApp
)。
我想让用户选择托管引导程序应用程序(C# WPF中的安装位置,尤其是因为应用程序要安装很大;大约1 GB)。如何为我的包中的每个MSI包指定INSTALLLOCATION?
答案 0 :(得分:12)
为每个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";