WixStandardBootstrapperApplication を使用してブートストラップ アプリケーションを実行しようとしています。これまでのところ、必要なことはすべてうまく機能し、インストール途中での再起動も処理できます。プロセスは次のようになります。コンピューターに .net 4.5 がインストールされているかどうかを確認し、インストールされていない場合は、.net 4.5 をインストールします。インストール後、終了コードを処理するため、burn は再起動することを認識します。再開時に、インストーラーはさらに 3 つの .exe ファイルを処理します。そのうちの 1 つは .net インストールに依存しています。これはすべて、再起動後まで非常にうまく機能します。再起動後、ブートストラップは実行時間を倍増させるexeのインストール後のそれぞれを修復しようとします。.net 4.5 のインストールに時間がかかりすぎて倍増が非常に望ましくないことを除いて、これはそれほど悪くはありません。修復コマンドを省略しようとしましたが、' インストールおよび検出条件のような形式の RepairCondition がないことに気付きました。修復プロセスを防ぐ方法はありますか?
ブートストラップ コードは次のとおりです。
<Chain>
<ExePackage Id="NetFx45Redist" Cache="no" Compressed="yes" PerMachine="yes" Permanent="yes" Vital="yes" InstallCommand="/q /norestart" RepairCommand="/q"
SourceFile="...\...\Setup Files\dotNetFx45_Full_setup.exe"
DetectCondition="(Netfx4FullVersion="4.5.50709") AND (NOT VersionNT64 OR (Netfx4x64FullVersion="4.5.50709"))"
InstallCondition="(VersionNT >= v6.0 OR VersionNT64 >= v6.0) AND (NOT (Netfx4FullVersion="4.5.50709" OR Netfx4x64FullVersion="4.5.50709"))"
RepairCondition="" >
<ExitCode Value="1641" Behavior="forceReboot"/>
<ExitCode Value="3010" Behavior="forceReboot"/>
<ExitCode Value="0" Behavior="success"/>
<ExitCode Behavior="error"/>
</ExePackage>
<ExePackage
SourceFile="...\...\Setup Files\Encoder_en.exe"
InstallCommand="/q"
RepairCommand="/q">
<ExitCode Behavior="success"/>
</ExePackage>
<ExePackage
SourceFile="...\...\Setup Files\vcredist_x86.exe"
InstallCommand="/q"
RepairCommand="/q">
<ExitCode Behavior="success"/>
</ExePackage>
<ExePackage
SourceFile="...\...\Setup Files\vcredist_x64.exe"
InstallCommand="/q"
RepairCommand="/q">
<ExitCode Behavior="success"/>
</ExePackage>
<!-- installer for actual software at some point -->
</Chain>
これらの他の.exeの動作を成功させるのは基本的にハックであることは知っていますが、修復の問題が処理されるまでは、インストーラーが失敗したと言う必要があります。これらからも修復コマンドを削除しようとしましたが、まったく役に立たないようです。少なくともポップアップしてユーザーを混乱させないように、静かにしました。