COM 相互運用機能の side-by-side 実行

side-by-side 実行によって、COM アプリケーションは、COM 相互運用サービスを通じてマネージ コンポーネントの複数のバージョンに安全にアクセスできます。 side-by-side 実行の概念および構成モデルの概要については、「.NET Framework での side-by-side 実行」を参照してください。

.NET Framework 4 以降では、COM 相互運用機能の side-by-side 実行が、一部のインプロセス シナリオに拡張されています。 .NET Framework 4 を使用して新しいマネージ COM コンポーネントを開発し、旧バージョンの .NET Framework で開発されたマネージ COM コンポーネントと共に、同じプロセス内でそのコンポーネントを並行して実行 (side-by-side 実行) できます。 互換性を最大にするために、各コンポーネントは、それぞれ固有のバージョンの .NET Framework を使用して実行されます。

これは、Microsoft Excel などのアプリケーションのインプロセスのアドインとして機能するマネージ COM コンポーネントに特に役立ちます。 .NET Framework 4 より前のバージョンでは、同じプロセス内で実行するマネージ COM コンポーネントが、同じバージョンの共通言語ランタイムを使用する必要がありました。 したがって、2 つのマネージ COM コンポーネントが別のバージョンの .NET Framework を使用してコンパイルされた場合は、両方のコンポーネントをより新しいバージョンで実行する必要がありました。 この場合、旧バージョンのコンポーネントに関する互換性の問題が発生する可能性があります。

.NET Framework 4 の CLR は、.NET Framework 1.1 の CLR または CLR Version 2.0 (.NET Framework 2.0 から .NET Framework 3.5 Service Pack 1 のすべてのバージョンの .NET Framework で共有されます) と共にインプロセスで実行できます。 つまり、.NET Framework 4 の新機能を使用すると、新しいバージョンの .NET Framework での旧バージョンのアドインの実行について配慮することなく、既存のアドインと side-by-side 実行されるアドインを開発できます。 「インプロセスの side-by-side 実行」を参照してください。

注意

CLR Version 2.0 と CLR Version 1.1 を同じプロセス内で side-by-side 実行することはできません。.NET Framework 1.1 で作成されたコンポーネントと、CLR Version 2.0 を使用するバージョンの .NET Framework で作成されたコンポーネントの 2 つがあり、それらを同じプロセス内で実行する場合は、より新しい方のバージョンを使用する必要があります。

このセクションの内容

関連項目

  • .NET Framework での side-by-side 実行
    side-by-side 実行の概要と、side-by-side 実行を使用してアプリケーション、コンポーネント、またはランタイム全体の複数のコピーを実行する方法について説明します。

  • プライマリ相互運用機能アセンブリ
    .NET Framework 4 より前のバージョンで開発されたマネージ COM コンポーネント用にプライマリ相互運用機能アセンブリを作成して使用する方法について説明します。

  • 登録を必要としない COM 相互運用機能
    COM 相互運用機能で Windows レジストリを使用せずにコンポーネントをアクティブにする方法について説明します。