VS2010 C++ ランタイムライブラリ

そう、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 にならないことを祈ります。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。