更新 : 2007 年 11 月
COM アプリケーションでマネージ型をアクティブにするには、共通言語ランタイムをメモリに読み込む必要があります。COM 相互運用機能は実際にはランタイムを読み込みませんが (ランタイム スタートアップ コードが読み込みます)、COM アプリケーションは特定のバージョンのランタイムを対象にすることができます。
ランタイムのバージョンは次の要因によって決まります。
COM アプリケーションでは、アプリケーション構成ファイルでランタイムのバージョンを指定できます。詳細については、「side-by-side 実行のための COM アプリケーションの構成」を参照してください。
Microsoft Internet Explorer や Microsoft Office などの拡張性の高いホストによって、ランタイムが既にメモリに読み込まれている場合があります。プラグイン COM アプリケーションは、マネージ コンポーネントを実行するホスト用に読み込まれているランタイムを使用します。
厳密な制御が必要である場合は、COM アプリケーションで、mscoree.dll からエクスポートされる CorBindToRuntimeHost メソッドを呼び出すことによって、プログラムで特定のバージョンのランタイムをあらかじめ読み込むことができます。または、mscoree.dll からエクスポートされる GetRequestedRuntimeVersionForCLSID メソッドを呼び出し、戻り値を CorBindToRuntimeHost に渡すことによって、アクティブである COM クラスに基づいて、アプリケーションで異なるバージョンのランタイムを対象にすることができます。
これらの要因がない場合は、スタートアップ コードによって、コンピュータにインストールされている最新の互換性のあるランタイムのバージョンが読み込まれます。
型解決
アクティブ化される型を含むアセンブリの複数のバージョンが Windows のレジストリ内に存在する場合、既定ではランタイムによって最新バージョンが読み込まれます。
COM アプリケーションにアプリケーション構成ファイルが存在する場合は、バインディングを特定のバージョンのアセンブリ内の型にリダイレクトできます。詳細については、「side-by-side 実行のための COM アプリケーションの構成」を参照してください。
![]() |
---|
.NET Framework Version 1.0 と共にインストールされるコンポーネントには、バージョン依存レジストリ キーがありません。このようなコンポーネントでは、COM がコンピュータ上で利用できる型のバージョンは 1 つだけです。 |
参照
概念
side-by-side 実行のための COM アプリケーションの構成