修理

2016-05-18 9 views
0

私は言語選択ラジオボタンでWixStandardBootstrapperを持っている:修理

<Button Name="InstallEnglish" HexStyle="000009" X="180" Y="150" Width="100" Height="15" TabStop="yes" FontId="5" HideWhenDisabled="no">#(loc.InstallEnglishRadio)</Button> 
<Button Name="InstallGerman" HexStyle="000009" X="180" Y="170" Width="100" Height="15" TabStop="yes" FontId="5" HideWhenDisabled="no">#(loc.InstallGermanRadio)</Button> 

これは正常に動作し、それに応じて変数InstallEnglishInstallGermanを設定します。私は私のMSIを起動し、これらの変数に基づいて

:予想通りの修理は、例えば後に選択されたときに

<MsiPackage Name="Installer" 
        SourceFile="Installer.msi" 
        Vital="yes" 
        Visible="no" 
        InstallCondition="InstallEnglish" 
        DisplayInternalUI="yes" /> 
<MsiPackage Name="Installer_de" 
        SourceFile="Installer.msi" 
        Vital="yes" 
        Visible="no" 
        InstallCondition="InstallGerman" 
        DisplayInternalUI="yes"> 
    <MsiProperty Name="TRANSFORMS" Value=":de-DE.mst"/> 
</MsiPackage> 

インストールしかし、作品ドイツ語のインストール、ドイツ語のインストールが最初に修復され、英語のインストールがアンインストールされ、ドイツ語のインストールが削除されます。

InstallConditionはインストールの条件のみを確認するので、これは予期しないことではありません。しかし、私はどのように修理を扱うのですか?

答えて

2

MSIを一度指定し、TRANSFORMS値を動的に生成します(たとえば、私はこれにカスタム管理されたブートストラップを使用します)。

<MsiPackage Name="Installer" 
        SourceFile="Installer.msi" 
        Vital="yes" 
        Visible="no" 
        DisplayInternalUI="yes"> 
    <MsiProperty Name="TRANSFORMS" Value="[Transforms]"/> 
</MsiPackage> 
+0

ありがとうございます。私は管理されたブートストラップを避けることができないようです。 – Jan

+0

インストール中に[Transforms]の値をレジストリに保存し、レジストリをRegistrySearch経由でブートストラップからTransforms変数に読み込むことができます。 –

関連する問題