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