Visual C++ ライブラリの共有 side-by-side アセンブリとしての配布

更新 : 2007 年 11 月

Visual C++ 2005 では、ATL、MFC、標準 C++、および CRT の各ライブラリが Windows XP、Windows Server 2003、および Windows Vista で使用できる新しい配置モデルをサポートします。すべての Visual C++ ライブラリに対応する DLL は、いくつかの共有 side-by-side アセンブリにグループ化され、オペレーティング システムのルート ディレクトリの下にある WinSxS フォルダというネイティブ アセンブリ キャッシュ内にインストールされます。同様に、Visual C++ 2005 を使用して C++ アプリケーションを構築すると、既定では、コンパイラとリンカは、Visual C++ ライブラリに対するそのアプリケーションのランタイム依存について記述するマニフェスト ファイルを生成します。

C/C++ アプリケーションは、Visual C++ ライブラリとアプリケーションをバインドするマニフェストなしで、これらのライブラリを使用できません。Visual C++ ライブラリに依存する C/C++ アプリケーションがマニフェストを使用しない場合、Visual C++ ライブラリをアプリケーション ローカル フォルダから依存 DLL として読み込もうとすると、その方法は、サポートされていない Visual C++ ライブラリを読み込む方法であることを示すエラー メッセージが表示されます。

ms235624.alert_note(ja-jp,VS.90).gifメモ :

Windows 98 や Windows 2000 Server など、共有 side-by-side アセンブリの配置をサポートしていないバージョンの Windows では、Visual C++ ライブラリは、オペレーティング システムのルート ディレクトリの下の System32 フォルダと WinSxS フォルダにインストールされます。このセットアップにより、アプリケーションと依存 DLL とのマニフェスト ベースのバインディングをサポートしないオペレーティング システム上でも、Visual C++ アプリケーションを実行できます。これらのオペレーティング システムでは、アプリケーションが読み込まれると、対応するマニフェスト ファイルは無視され、オペレーティング システムは、現在の実行環境で設定されているパスを使用して依存 DLL を探します。ただし、Windows XP、Windows Server 2003、または Windows Vista のように、マニフェスト ベースのバインディングをサポートするバージョンにオペレーティング システムをアップグレードすると、マニフェストで構築されているアプリケーションは、WinSxS フォルダにインストールされている DLL を使用して起動します。

Visual C++ ライブラリの配置モデルに対するこの変更により、マシンに更新プログラムや追加構成を加えることにより発生する DLL のバージョンの競合という問題を回避でき、2 つの異なる Visual C++ ツールセットの side-by-side インストールがサポートされます。また、これにより、既存のコンポーネントと競合することのない、信頼性の高い自己記述的なアプリケーションとコンポーネントを作成できます。新しい配置モデルの利点の詳細については、「分離アプリケーションおよび side-by-side アセンブリの概念」を参照してください。新しい配置モデルによる既存のネイティブ C++ アプリケーションの配置に対する影響については、「Visual C++ ファイルの再配布」を参照してください。

Visual C++ ライブラリは、対応するマニフェスト ファイルと共にいくつかの共有 side-by-side アセンブリにパッケージ化されます。

[アセンブリ名]

アセンブリに含まれる DLL

Visual C++ のライブラリ

Microsoft.VC90.ATL

atl90.dll

ATL (Active Template Library)

Microsoft.VC90.CRT

msvcr90.dll

msvcp90.dll

msvcm90.dll

C ランタイム ライブラリ、リリース DLL

Microsoft.VC90.DebugCRT

msvcr90d.dll

msvcp90d.dll

msvcm90d.dll

C ランタイム ライブラリ、デバッグ DLL

Microsoft.VC90.MFC

mfc90.dll

mfcm90.dll

mfc90u.dll

mfcm90u.dll

MFC (Microsoft Foundation Class)、リリース DLL

Microsoft.VC90.DebugMFC

mfc90d.dll

mfcm90d.dll

mfc90ud.dll

mfcm90ud.dll

MFC、デバッグ DLL

Microsoft.VC90.MFCLOC

mfc90chs.dll

mfc90deu.dll

mfc90esp.dll

mfc90ita.dll

mfc90kor.dll

mfc90cht.dll

mfc90enu.dll

mfc90fra.dll

mfc90jpn.dll

MFC、ローカライズされたリソース

Microsoft.VC90.OpenMP

vcomp.dll

OpenMP ライブラリ、リリース DLL

Microsoft.VC90.DebugOpenMP

Vcompd.dll

OpenMP ライブラリ、デバッグ DLL

Visual C++ 2008 でアプリケーションを構築する際には、Visual C++ ライブラリを再頒布して、顧客のデスクトップに、対応する DLL を配置することが必要になる場合があります。詳細については、「配置 (C++)」を参照してください。