そう、C++でプログラムを作成した際には、多くの場合、再頒布用のランタイムライブラリを
プログラムと一緒に配置します。
例) msvcr90.dll、mfc90.dll など
VS2005 C++、VS2008 C++ でのランタイムライブラリは、side-by-side という仕組みになった
ライブラリを使用していました。これらは、
Windows\winsxs
というフォルダー下にながーい名前のサブフォルダーを作って配置します。ただし、配置するためには
マージモジュール(拡張子 msm)のファイルでインストールする必要があります。
VS2010 C++ ですが、また同じ side-by-side なんだろうなと思っていたら、何と、side-by-side では
なくなっていました。えっ!?では、どこに?
side-by-side ではなくなり、また、side-by-side 以前の配置方法に戻ってしまったようです。
つまり、
Windows\system32
の下に配置する方法です…。
元に戻ったからといっても、インストーラーでファイルを直接配置するのは NG です。
C:\Program Files\Common Files\Merge Modules
に VS2010 がマージモジュールをインストールしています。
このマージモジュールを使って必要なランタイムライブラリをインストールする必要があります。
マージモジュールを orca で覗いてみたところ、マニフェストファイルはなく、確かに dll のみでした。
マージモジュールということなので、Windows Installer を使ってのインストールになりますので、
すでにランタイムライブラリが配置されていたら、ファイルバージョンをチェックして新しい方のバージョンが
残ることになります。
dll Hell にならないことを祈ります。