アセンブリとグローバル アセンブリ キャッシュの使用
Note
この記事は .NET Framework に固有のものです。 .NET 6 以降のバージョンを含めて、.NET の新しい実装には適用されません。
あるアセンブリを複数のアプリケーションで共有する場合は、そのアセンブリをグローバル アセンブリ キャッシュ内にインストールできます。 共通言語ランタイムをインストールしている各コンピューターは、このコードをコンピューター全体で使用できます。 グローバル アセンブリ キャッシュは、そのコンピューター上の複数のアプリケーションで共有するように指定されたアセンブリを格納します。 グローバル アセンブリ キャッシュ内にインストールされるアセンブリは、厳密な名前を持つ必要があります。
Note
グローバル アセンブリ キャッシュ内に配置されるアセンブリは、アセンブリ名とファイル名の拡張子を除く部分が一致している必要があります。 たとえば、アセンブリ名が myAssembly のアセンブリの場合、ファイル名は myAssembly.exe または myAssembly.dll である必要があります。
アセンブリの共有が必要な場合にだけ、アセンブリをグローバル アセンブリ キャッシュにインストールします。 一般的には、明らかにアセンブリを共有する必要がある場合を除いて、アセンブリの依存関係はプライベートにし、アセンブリはアプリケーション ディレクトリに配置します。 また、COM 相互運用 (機能) またはアンマネージ コードからアセンブリにアクセスできるようにするために、アセンブリをグローバル アセンブリ キャッシュにインストールする必要はありません。
アセンブリをグローバル アセンブリ キャッシュにインストールする理由は、いくつか考えられます。
共有の場所。
複数のアプリケーションで使用するアセンブリは、グローバル アセンブリ キャッシュに配置できます。 たとえば、すべてのアプリケーションがグローバル アセンブリ キャッシュ内の 1 つのアセンブリを使用する場合は、アセンブリへの参照をリダイレクトするバージョン ポリシー ステートメントを Machine.config ファイルに追加できます。
ファイル セキュリティ。
通常、管理者は、書き込みおよび実行アクセスを制御するアクセス制御リスト (ACL: Access Control List) を使用して systemroot ディレクトリを保護します。 グローバル アセンブリ キャッシュは、systemroot ディレクトリにインストールされるため、このディレクトリの ACL を継承します。 グローバル アセンブリ キャッシュからファイルを削除する場合は、管理者権限を持つユーザーに対してだけ許可することをお勧めします。
side-by-side でのバージョン管理。
名前は同じでもバージョン情報が異なるアセンブリの複数のコピーを、グローバル アセンブリ キャッシュ内で管理できます。
追加の検索場所。
共通言語ランタイムは、構成ファイル内のコードベース情報をプローブまたは使用する前に、グローバル アセンブリ キャッシュ内にアセンブリ要求と一致するアセンブリがあるかどうかをチェックします。
アセンブリのグローバル アセンブリ キャッシュへのインストールを明示的に避けたい場合もあります。 アプリケーションを構成するアセンブリの 1 つをグローバル アセンブリ キャッシュに配置した場合は、アプリケーション ディレクトリをコピーする XCOPY を使用してアプリケーションをレプリケートしたりインストールしたりすることはできなくなります。 この場合は、グローバル アセンブリ キャッシュ内のアセンブリも移動する必要があります。
このセクションの内容
方法: アセンブリをグローバル アセンブリ キャッシュにインストールする - アセンブリをグローバル アセンブリ キャッシュにインストールする方法について説明します。
方法: グローバル アセンブリ キャッシュの内容を表示する - Gacutil.exe (グローバル アセンブリ キャッシュ ツール) を使ってグローバル アセンブリ キャッシュの内容を表示する方法について説明します。
方法: グローバル アセンブリ キャッシュからアセンブリを削除する - Gacutil.exe (グローバル アセンブリ キャッシュ ツール) を使ってグローバル アセンブリ キャッシュからアセンブリを削除する方法について説明します。
グローバル アセンブリ キャッシュでのサービス コンポーネントの使用 - サービス コンポーネント (マネージド COM+ コンポーネント) をグローバル アセンブリ キャッシュに配置する必要がある理由について説明します。
関連セクション
アセンブリの作成 - アセンブリの作成の概要について説明します。
グローバル アセンブリ キャッシュ グローバル アセンブリ キャッシュについて説明します。
方法: アセンブリの内容を表示する - Ildasm.exe (IL 逆アセンブラー) を使ってアセンブリ内の共通中間言語 (CIL) 情報を表示する方法について説明します。
ランタイムがアセンブリを検索する方法 - 共通言語ランタイムがアプリケーションを構成するアセンブリを検索して読み込む方法について説明します。
アセンブリを使ったプログラミング - マネージド アプリケーションの構成要素であるアセンブリについて説明します。
.NET