登録を必要としない COM 相互運用機能Registration-Free COM Interop

登録を必要としない COM 相互運用機能は、アセンブリ情報を格納するために Windows レジストリを使用しないで、コンポーネントをアクティブにします。Registration-free COM interop activates a component without using the Windows registry to store assembly information. 展開中にコンピューター上のコンポーネントを登録するのではなく、バインディングとアクティベーションに関する情報を含む Win32 スタイルのマニフェスト ファイルをデザイン時に作成します。Instead of registering a component on a computer during deployment, you create Win32-style manifest files at design time that contain information about binding and activation. レジストリ キーではなく、これらのマニフェスト ファイルが、オブジェクトのアクティベーションを指示します。These manifest files, rather than registry keys, direct the activation of an object.

展開中に登録するのではなく、登録を必要としないアクティベーションをアセンブリに使用することには、次の 2 つの利点があります。Using registration-free activation for your assemblies instead of registering them during deployment offers two advantages:

  • 複数のバージョンの DLL がコンピューターにインストールされているとき、どのバージョンをアクティブ化するかを制御できます。You can control which DLL version is activated when more than one version is installed on a computer.

  • エンドユーザーは XCOPY または FTP を使用して、アプリケーションをコンピューターの適切なディレクトリにコピーできます。End users can use XCOPY or FTP to copy your application to an appropriate directory on their computer. その後、そのディレクトリでアプリケーションを実行できます。The application can then be run from that directory.

このセクションでは、登録を必要としない COM 相互運用機能に必要な 2 つの種類のマニフェストについて説明します。それらはアプリケーション マニフェストとコンポーネント マニフェストです。This section describes the two types of manifests needed for registration-free COM interop: application and component manifests. これらのマニフェストは、XML ファイルです。These manifests are XML files. アプリケーション マニフェストは、アプリケーション開発者によって作成され、アセンブリやアセンブリの依存関係を記述するメタデータを含んでいます。An application manifest, which is created by an application developer, contains metadata that describes assemblies and assembly dependencies. コンポーネント マニフェストは、コンポーネント開発者によって作成されるものであり、そこには、本来 Windows レジストリに存在する情報が含まれています。A component manifest, created by a component developer, contains information otherwise located in the Windows registry.

登録を必要としない COM 相互運用機能の要件Requirements for registration-free COM interop

  1. 登録を必要としない COM 相互運用機能のサポートは、ライブラリ アセンブリの種類に応じて、具体的にはアセンブリがアンマネージド (COM side-by-side) であるかマネージド (.NET ベース) であるかによって、多少異なります。Support for registration-free COM interop varies slightly depending on the type of library assembly; specifically, whether the assembly is unmanaged (COM side-by-side) or managed (.NET-based). 次の表は、それぞれのアセンブリの種類について、オペレーティング システムと .NET Framework のバージョン要件を示しています。The following table shows the operating system and .NET Framework version requirements for each assembly type.

    アセンブリの種類Assembly type オペレーティング システムOperating system .NET Framework のバージョン.NET Framework version
    COM side-by-sideCOM side-by-side Microsoft Windows XPMicrosoft Windows XP 不要。Not required.
    .NET ベース.NET-based Windows XP SP2Windows XP with SP2 .NET Framework バージョン 1.1NET Framework version 1.1 or later.

    Windows Server 2003 ファミリも、.NET ベースのアセンブリで、登録を必要としない COM 相互運用機能をサポートしています。The Windows Server 2003 family also supports registration-free COM interop for .NET-based assemblies.

    NET ベースのクラスが COM からのレジストリを必要としないアクティベーションと互換性を持つためには、そのクラスが既定のコンストラクターを持ち、パブリックであることが必要です。For a .NET-based class to be compatible with registry-free activation from COM, the class must have a default constructor and must be public.

登録を必要としないアクティベーション用の COM コンポーネントの構成Configuring COM components for registration-free activation

  1. COM コンポーネントが登録を必要としないアクティベーションに含まれるようにするには、それを side-by-side アセンブリとして展開する必要があります。For a COM component to participate in registration-free activation, it must be deployed as a side-by-side assembly. Side-by-side アセンブリはアンマネージ アセンブリです。Side-by-side assemblies are unmanaged assemblies. 詳しくは、「Using Side-by-side Assemblies」(side-by-side アセンブリの使用) をご覧ください。For more information, see Using Side-by-side Assemblies.

    COM の side-by-side アセンブリを使用するには、.NET ベースのアプリケーション開発者が、バインディングとアクティベーションの情報を含むアプリケーション マニフェストを提供する必要があります。To use COM side-by-side assemblies, a .NET-based application developer must provide an application manifest, which contains the binding and activation information. Windows XP オペレーティング システムには、アンマネージの side-by-side アセンブリのサポートが組み込まれています。Support for unmanaged side-by-side assemblies is built into the Windows XP operating system. オペレーティング システムでサポートされている COM ランタイムは、アクティブ化されるコンポーネントがレジストリに存在しない場合、アプリケーション マニフェストをスキャンしてアクティベーション情報を見つけます。The COM runtime, supported by the operating system, scans an application manifest for activation information when the component being activated is not in the registry.

    登録を必要としないアクティベーションは、Windows XP にインストールされている COM コンポーネントでは省略可能です。Registration-free activation is optional for COM components installed on Windows XP. アプリケーションに side-by-side アセンブリを追加する方法の詳細な手順については、「Using Side-by-side Assemblies」(side-by-side アセンブリの使用) をご覧ください。For detailed instructions on adding a side-by-side assembly to an application, see Using Side-by-side Assemblies.

    注意

    Side-by-side 実行は、ランタイムの複数のバージョンと、特定のバージョンのランタイムを使用するアプリケーションおよびコンポーネントの複数のバージョンを、同一のコンピューター上で同時に実行できるようにするための、.NET Framework の機能です。Side-by-side execution is a .NET Framework feature that enables multiple versions of the runtime, and multiple versions of applications and components that use a version of the runtime, to run on the same computer at the same time. Side-by-side 実行と side-by-side アセンブリは、side-by-side 機能を提供するための別個のメカニズムです。Side-by-side execution and side-by-side assemblies are different mechanisms for providing side-by-side functionality.

関連項目See also