22

VisualStudio2010バージョン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再配布可能ファイルの正しい製品コードを示しています。

4

1 に答える 1

14

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

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

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

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

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

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

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

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

于 2011-10-17T06:24:30.320 に答える