9

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

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

4

1 回答 1

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";
于 2011-09-28T19:23:34.860 回答