在Burn托管引导程序内指定WiX中的软件包的INSTALLLOCATION

时间:2011-09-28 19:06:56

标签: wix wix3.6 burn

我有一个WiX 3.6软件包(使用Burn)和托管引导程序,可以安装多个MSI软件包。某些软件包安装到公共位置(C:\program files\MyApp)。

我想让用户选择托管引导程序应用程序(C# WPF中的安装位置,尤其是因为应用程序要安装很大;大约1 GB)。如何为我的包中的每个MSI包指定INSTALLLOCATION?

1 个答案:

答案 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";