3

WixStandardBootstrapperApplication を使用してブートストラップ アプリケーションを作成しようとしています。再起動の処理を除いて、本当にうまくいくために必要なことはすべて実行します。

EXE ファイルのグループをインストールする必要があります。最初のものだけが .NET 4.5 であり、再起動が必要です。再起動を遅らせたいのですが、他のプログラムの 1 つがそれに依存しているため、できません。終了コードを使用して再起動を強制しようとしましたが、コンピューターが再起動するたびにブートストラップがその終了コードでスタックし、他に何もインストールできません。プログラムがまだ再起動されていない場合 (または他の論理的な方法) にのみ終了コードを適用する方法はありますか?

これが私がやっていることです...

<ExePackage
  Id               = "NetFx45Redist"
  Cache            = "no"
  Compressed       = "yes"
  PerMachine       = "yes"
  Permanent        = "yes"
  Vital            = "yes"
  InstallCommand   = "/quiet /norestart"

  SourceFile       = "C:\Users\visibleEP\Documents\Visual Studio 2012\Projects\Bootstrapper1\VEP Deploy\Setup Files\dotNetFx45_Full_setup.exe"
  DetectCondition  = "(Netfx4FullVersion=&quot;4.5.50709&quot;) AND (NOT VersionNT64 OR (Netfx4x64FullVersion=&quot;4.5.50709&quot;))"
  InstallCondition = "(VersionNT >= v6.0 OR VersionNT64 >= v6.0) AND (NOT (Netfx4FullVersion=&quot;4.5.50709&quot; OR Netfx4x64FullVersion=&quot;4.5.50709&quot;))">

  <ExitCode Behavior = "forceReboot"/>
</ExePackage>

<ExePackage
  SourceFile = "...\...\Setup Files\Encoder_en.exe"
  InstallCommand = "/q"/>

<ExePackage
  SourceFile = "...\...\Setup Files\vcredist_x86.exe"
  InstallCommand = "/q /ACTION=Install"
  RepairCommand = "/q ACTION=Repair /hideconsole" />

<ExePackage
  SourceFile = "...\...\Setup Files\vcredist_x64.exe"
  InstallCommand = "/q /ACTION=Install"
  RepairCommand = "/q ACTION=Repair /hideconsole" />
4

1 に答える 1

3

交換

<ExitCode Behavior="forceReboot"/>

<ExitCode Behavior="forceReboot" Value="1641" />
<ExitCode Behavior="forceReboot" Value="3010" />

1641 と 3010 はどちらも「インストールを完了するには再起動が必要です。このメッセージは成功を示しています。」

あなたのバージョンは、すべての終了コードを同じものとして扱います。そのインストーラーのドキュメントを参照してください。幸いなことに、終了コードは文書化されています。

error更新: 既知の成功コードと、すべての成功コードが文書化されていると確信している場合のキャッチオールを追加しました。

<ExitCode Behavior="success" Value="0" />
<ExitCode Behavior="error"/>
于 2013-06-20T17:06:14.300 に答える