アセンブリとグローバル アセンブリ キャッシュ (C# および Visual Basic)

アセンブリは、.NET ベースのアプリケーションの配置、バージョン管理、再利用、アクティベーション スコープ、およびセキュリティ権限の基本単位を形成します。 アセンブリは実行可能 (.exe) ファイルまたはダイナミック リンク ライブラリ (.dll) ファイルであり、.NET Framework のビルド ブロックとして機能します。 共通言語ラインタイムは、実装されている型を認識するために必要な情報をアセンブリから受け取ります。 アセンブリは、機能の論理単位を形成し、ビルドされることによって連係して機能する、型およびリソースの集まりと見なすことができます。

アセンブリには、1 つ以上のモジュールを含めることができます。 たとえば、大型のプロジェクトは、数人の開発者がそれぞれ個別のモジュールを担当し、すべてのモジュールを組み合わせて 1 つのアセンブリを作成するように計画できます。 モジュールの詳細については、「方法 : マルチファイル アセンブリをビルドする」を参照してください。

アセンブリには、次のような特徴があります。

  • アセンブリは、.exe ファイルまたは .dll ファイルとして実装されます。

  • アセンブリをグローバル アセンブリ キャッシュに配置すると、複数のアプリケーションで共有できます。 アセンブリをグローバル アセンブリ キャッシュに配置する場合は、厳密な名前を付ける必要があります。 詳細については、「厳密な名前付きアセンブリ」を参照してください。

  • アセンブリは、必要な場合にのみメモリに読み込まれます。 使用されない場合は、読み込まれません。 このため、大型のプロジェクトでアセンブリを使用すると、リソースを効率的に管理できます。

  • リフレクションを使用すると、アセンブリに関する情報をプログラムによって取得できます。 詳細については、「リフレクション」を参照してください。

  • 検査だけに限定してアセンブリを読み込む場合は、ReflectionOnlyLoadFrom などのメソッドを使用します。

アセンブリ マニフェスト

すべてのアセンブリに、アセンブリ マニフェストがあります。 アセンブリ マニフェストは目次のようなものであり、次の情報が含まれています。

  • アセンブリの ID (名前とバージョン)。

  • アセンブリを構成している他のすべてのファイルの情報を含むファイル テーブル。たとえば、.exe ファイルや .dll ファイルが依存している作成済みのアセンブリ、ビットマップ ファイル、Readme ファイルなどがあります。

  • アセンブリ参照リスト。アプリケーションで必要な .dll やその他のファイルなど、すべての外部依存関係のリストです。他のユーザーによって作成されている場合もあります。 アセンブリ参照には、グローバル オブジェクトへの参照とプライベート オブジェクトへの参照の両方が含まれます。 グローバル オブジェクトはグローバル アセンブリ キャッシュに常駐しています。グローバル アセンブリ キャッシュとは、System32 ディレクトリのように、他のアプリケーションも使用できる領域です。 グローバル アセンブリ キャッシュ内のアセンブリには、たとえば Microsoft.VisualBasic 名前空間などがあります。 プライベート オブジェクトは、アプリケーションがインストールされるディレクトリと同じレベルか、またはそれより下のディレクトリにあることが必要です。

アセンブリにはコンテンツ、バージョン管理、および依存関係に関する情報が含まれているため、Visual Basic および C# で作成したアプリケーションは、レジストリ値に依存しなくても正しく機能します。 アセンブリによって .dll の競合が減少するため、アプリケーションの信頼性が向上し、配置も簡単になります。 多くの場合、.NET ベースのアプリケーションは、ファイルを目的のコンピューターにコピーするだけでインストールできます。

詳細については、「アセンブリ マニフェスト」を参照してください。

アセンブリへの参照の追加

アセンブリを使用するには、アセンブリへの参照を追加する必要があります。詳しくは「方法: Visual Studio で参照を追加または削除する」を参照してください。 次に、Imports ステートメント (Visual Basic の場合) または using ディレクティブ (C# の場合) を使用して、使用する項目の名前空間を選択します。 アセンブリが参照され、インポートされたら、その名前空間のアクセス可能なすべてのクラス、プロパティ、メソッド、およびその他のメンバーが (そのコードがまるでソース ファイルの一部であるかのように) アプリケーションから利用できます。

C# では、同じアセンブリの 2 つのバージョンを 1 つのアプリケーションで使用することもできます。 詳細については、「extern エイリアス (C# リファレンス)」を参照してください。

アセンブリの作成

[ビルド] メニューの [ビルド] をクリックするか、またはコマンド ラインでコマンド ライン コンパイラを使って、アプリケーションをコンパイルします。 コマンド ラインからアセンブリをビルドする方法の詳細については、「コマンド ラインからのビルド (Visual Basic)」(Visual Basic の場合) および「csc.exe を使用したコマンド ラインからのビルド」(C# の場合) を参照してください。

参照

処理手順

方法: アセンブリを他のアプリケーションと共有する (C# および Visual Basic)

方法: アセンブリを読み込み、アンロードする (C# および Visual Basic)

方法: ファイルがアセンブリであるかどうかを確認する (C# および Visual Basic)

方法: コマンド ラインを使用してアセンブリを作成および使用する (C# および Visual Basic)

チュートリアル: マネージ アセンブリからの型の埋め込み (C# および Visual Basic)

参照

フレンド アセンブリ (C# および Visual Basic)

概念

C# プログラミング ガイド

共通言語ランタイムのアセンブリ

その他の技術情報

Visual Basic のプログラミング ガイド

チュートリアル: Microsoft Office アセンブリからの型情報の埋め込み (C# および Visual Basic)