Visual C++ 2010 Redistributable のブートストラッパーによるインストールについて

こんにちは、Visual Studio サポートチームです。

今回は、Visual C++ 2010 Redistributable のSetup.exe などのブートストラッパーによるインストールに関し、既にインストール済の環境であっても繰り返しインストールされてしまう現象と、その回避方法をご紹介いたします。

Setup.exe などのブートストラッパーを使用して Visual C++ 2010 Redistributable をインストールする際に、対象の環境で Visual C++ 2010 Redistributable のインストールが必要かどうかをチェックし、すでにインストールされている場合には重複しインストールを実行しないといった動作をします。

しかし、Visual C++ 2010 Redistributable がインストール済の環境であっても、修復セットアップの実行を促すポップアップが表示される場合があります。

◆ 原因
====== この現象は、Visual Studio 2010 に含まれる Visual C++ 2010 Redistributableをブートストラッパーとして追加する際に参照する設定ファイル (product.xml と package.xml) に含まれるID 等の情報が、最新の Visual C++ 2010 Redistributable のパッケージが持つ情報と一致していないことにより発生します。

Visual C++ 2010 Redistributable では、該当の環境にすでにインストールされているかどうかをチェックする際に、プロダクトコードをチェックするよう構成されています。このチェックに使用するコードが実際のパッケージのものと異なっています。

そのため、実際にはインストール済の環境であっても、プロダクトコードのチェックではインストールされていないと判断され、再度インストーラーが実行されます。

◆ 対処方法について
============ この現象に対処するには、設定ファイル内 (product.xml と package.xml) の値を適切な値に手動で変更します。

なお、これらのファイルは "Program Files" フォルダ内にあるため、変更時には管理者権限が必要となります。

そのため、変更時には、管理者権限で起動したテキスト エディタで開いていただくか、一旦任意のフォルダにコピーして内容をご変更いただき、管理者の権限を持つユーザーで Program Files 内のフォルダに上書きしていただくなどの方法でご対応ください。

 

◇ product.xml を変更する
------------------------------
Visual Studio 2010 によりインストールされたブートストラッパー パッケージの設定ファイルを変更し、正しいプロダクトコードでチェックが行われるようにします。

Visual C++ 2010 Redistributable のパッケージの設定ファイル (product.xml) は、既定の設定でインストールした場合、以下のフォルダ内に保存されています。

- 設定ファイルのパス

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

x86 版 : vcredist_x86 フォルダ以下
x64 版 : vcredist_x64 フォルダ以下
IA64 版 : vcredist_IA64 フォルダ以下

  ※ 64bit OS をご利用の際は、"C:\Program Files (x86)" 以下のフォルダとなります。

上記フォルダ内にある product.xml を開き、"<InstallChecks>" 要素に含まれる <MsiProductCheck> 子要素の "Product" 属性の値を変更します。
Visual C++ 2010 SP1 に対応するプロダクト コードは以下のとおりです。

- Visual C++ 2010 SP1 のプロダクト コード

x86 版 : {F0C3E5D1-1ADE-321E-8167-68EF0DE699A5}
x64 版 : {1D8E6291-B0D5-35EC-8441-6616F567A0F7}
IA64 版 : {88C73C1C-2DE5-3B01-AFB8-B46EF4AB41CD}

 

例えば、以下のように変更します。

- x86 版の場合の変更例
---

<InstallChecks>

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

</InstallChecks>

---

◇ package.xml を変更する
------------------------------

作成したインストーラーの設定において、弊社ダウンロードセンターから Visual C++ 2010 Redistributable のパッケージをダウンロードする設定である場合は、ダウンロードリンクの URL もご変更が必要です。

弊社ダウンロードセンターからダウンロードする設定であるかどうかは、プロジェクトの [プロパティ ページ] - [必須コンポーネント] ダイアログで、[必須コンポーネントのインストール場所を指定してください] の項目に "必須コンポーネントをコンポーネントの開発元の Web サイトからダウンロードする (o)" を選択いただいているかどうかを、ご確認ください。

ダウンロード リンクの URL は、上記ブートストラッパー パッケージの設定ファイルのフォルダとなる vcredist_x86 以下の言語フォルダ (ja など) にある package.xml に記載されております。

Visual C++ 2010 SP1 に対応する URL は以下のとおりです。

- Visual C++ 2010 SP1 のダウンロード先 URL

x86 版 : https://go.microsoft.com/fwlink/?LinkID=210621
x64 版 : https://go.microsoft.com/fwlink/?LinkID=210622
IA64 版 : https://go.microsoft.com/fwlink/?LinkID=210623

例えば、以下のように変更します。

- x86 版の場合の変更例
---

<String Name="VCRedistExe">https://go.microsoft.com/fwlink/?LinkID=210621&amp;clcid=0x411</String>

---