9

WiX 3.6 バンドル ( Burnを使用) と、いくつかのMSIパッケージをインストールするマネージド ブートストラップがあります。一部のパッケージは、共通の場所 ( C:\program files\MyApp) にインストールされます。

管理されたブートストラップ アプリケーション内のインストール場所をユーザーが選択できるようにしたい (特にアプリケーションのインストールが大きいため、約 1 GB のため、C# WPF )。バンドル内の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 に答える