1

インストーラーは .NET フレームワークを再配布する必要がありますが、setup.exe ラッパーは使いたくないので、エンド ユーザーのマシンにまだない場合に .NET の Web インストーラーを起動するカスタム アクションを作成しました。 . これは .NET 4.0 および .NET 3.5 では問題なく動作しますが、.NET 4.5 の場合、.NET インストーラーは「別のインストールが完了するのを待っています」と報告し、失敗します。ネストされたインストールを可能にするために、UI シーケンスの非常に早い段階で特に配置しました。

まったく同じ InstallShield 構成/コードが .NET 3.5 および .NET 4.0 で正常に動作しますが、.NET 4.5 では失敗します。Microsoft の標準 Web インストーラーを使用しています: http://www.microsoft.com/en-ca/download /details.aspx?id=30653

この問題の解決策または回避策を知っている人はいますか?

カスタム アクションのコードは次のとおりです。

if ( hasDotNET45 = FALSE ) then
    MessageBox( "Missing .NET 4.5 framework!", INFORMATION );
    LAAW_SHELLEXECUTEVERB = "runas";
    LaunchApplication( szSupportDir^"\\dotNetFx45_Full_setup.exe", "", "", SW_SHOWNORMAL, 100000, LAAW_OPTION_USE_SHELLEXECUTE | LAAW_OPTION_WAIT_INCL_CHILD );
    Delay( 333 );
endif;
4

2 に答える 2

2

.Net 4 と 3.5 がこのように機能することにも驚きました。MSI インストーラーのカスタム アクションとして内部で MSI を使用している可能性が高いインストーラーを起動することはお勧めできません。

.Net4.5 (またはその他のソフトウェア) が存在することを確認したい場合は、Installshield のSetup / Feature Prerequisites でインストーラーを開始する前にチェーンするか、LaunchCondition テーブルを使用してインストーラーが続行されないようにする必要があります。環境が要件を満たしていません。

于 2013-05-14T20:51:44.993 に答える