2

COM オブジェクトとしてアクセスされる c++ プロジェクトを含む ac# ソリューションがあります。私はこれを VS 2010 で構築しており、プログラムをインストールするための Windows インストーラーを作成しました。アプリケーションは 64 ビットで、ほとんどのマシンで問題なく動作します。ただし、前提条件として「Visual C++ 2010 ランタイム ライブラリ (x64)」を追加したいので、必要なものがすべてシステムで利用可能であることを確認できます。

変更を加えると、以前は機能していたテスト システムにインストールしようとするたびに、Visual C++ をインストールする必要があると言われます。[インストール] ボタンをクリックし、UAC に「はい」と答えると、「マシンで Microsoft Visual C++ 2010 再頒布可能パッケージの新しいバージョンが検出されました」というエラーが表示されます。「システム コンポーネントのインストール中にエラーが発生しました...すべてのシステム コンポーネントが正常にインストールされるまで、セットアップを続行できません。」というメッセージが表示されます。

Component Visual C++ 2010 Runtime Libraries (x64) has failed to install with the following error message:
"Asia"

The following components failed to install:
- Visual C++ 2010 Runtime Libraries (x64) 

新しいバージョンの C++ がコンピューターに既にインストールされている場合、アプリケーションをインストールできないのは奇妙です。

ここに画像の説明を入力

追加情報: msi ファイルを 64 ビット インストールで動作させるには、Orca で編集する必要があります。Binary -> InstallUtil _> に移動し、フィールドを installUtilLib.dll の 64 ビット バージョンに変更します。前提条件のチェックは exe ファイルで行われるため、msi をロードする前に、これが違いを生むとは思いませんが、追加すると思いました。変更を行わないと、インストーラーがすぐにクラッシュします。

Visual C++ の最新バージョンをインストールするために何をする必要があるか、または要件を満たすものとしてそれ以降のバージョンを受け入れるために何をする必要があるかを誰かが知っている場合は、ガイダンスをいただければ幸いです。

現在、Windows 7 x64 システムでテスト中です。

4

2 に答える 2

1

これを解決する手順はここにあり、製品の値はここにあります。

以下は、私が従った基本的な手順です。

編集

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

探す

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

への変更

  <InstallChecks>
    <MsiProductCheck Property="VCRedistInstalled" Product="{1D8E6291-B0D5-35EC-8441-6616F567A0F7}"/>
  </InstallChecks>
于 2013-05-04T00:45:40.547 に答える