web-dev-qa-db-ja.com

Visual C ++ 2010ランタイムライブラリの前提条件は、VS2010で作成されたインストーラーでポップアップし続けます

Visual Studio2010バージョン10.0.40.219.1SP1Relを使用してインストーラーを作成しました。私のアプリケーションはx86用にビルド/コンパイルされており、VC++ランタイムライブラリが必要です。したがって、セットアッププロジェクトは、VC++ランタイムライブラリを前提条件として構成されます。

インストーラーを実行するたびに、「次のコンポーネントがマシンにインストールされます」というポップアップが表示されます。 「VisualC++ 2010ランタイムライブラリ(x86)」。期待どおりに初めてインストールされたとき。 2回目以降は、VC++ 2010を修復するか削除するかを尋ねられます。

このポップアップは、VC++再配布可能ファイルがインストールされていないことが初めて検出されたときに1回だけ表示されます。

誰かこれを見たことがありますか?誰かが私がこれを修正する方法を知っていますか?

解決策:

私が受け入れた答えは、私が問題を解決するために必要なものを私に与えました。これを修正するために私が行ったことの詳細は次のとおりですが、実際には非常に簡単でした。私はファイルを編集しました:

C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages\vcredist_x86\product.xml

このファイルには、次のものが含まれています。

<InstallChecks>
    <MsiProductCheck Property="VCRedistInstalled" Product="{6EE91C1A-A2E7-38CD-AEBB-3B900A4D8868}"/>
</InstallChecks>

上記には誤った製品コードが含まれています。上記を、次のように再配布可能なVisual C++ 2010SP1の正しい製品コードに置き換えます。

<InstallChecks>
    <MsiProductCheck Property="VCRedistInstalled" Product="{F0C3E5D1-1ADE-321E-8167-68EF0DE699A5}"/>
</InstallChecks>

リンク ここ は、さまざまなVC++ 2010再配布可能ファイルの正しい製品コードを示しています。

22
Elan

これは、前提条件の検出基準が正しくないために発生します。

解決策は、正しい基準を使用して独自のカスタム前提条件を作成することです。おそらくこの記事が役立つでしょう: http://blogs.msdn.com/b/astebner/archive/2010/05/05/10008146.aspx

VisualStudioセットアッププロジェクトはこれをサポートしていません。ただし、必要なマニフェストを手動で生成することで実行できます。

マニフェストの構造は次の場所にあります: http://msdn.Microsoft.com/en-us/library/ms229223(VS.80).aspx

これらのマニフェストは、 Bootstrapper Manifest Generator ツールを使用して自動的に生成できます。

パッケージマニフェストを生成した後、これらすべてのファイル(パッケージを含む)をVisualStudioの前提条件フォルダー内の別のフォルダーに追加できます。次に例を示します。

C:\Program Files\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages\

次に、セットアッププロジェクトのプロパティページで前提条件を選択できます。

14
Cosmin Pirvu