グローバル アセンブリ キャッシュ

更新 : 2010 年 6 月

共通言語ランタイムがインストールされている各コンピューターには、グローバル アセンブリ キャッシュと呼ばれる、コンピューター全体にわたって使用されるコード キャッシュがあります。 グローバル アセンブリ キャッシュは、そのコンピューター上の複数のアプリケーションで共有するように指定されたアセンブリを格納します。

アセンブリを共有するには、必要な場合にだけそれらのアセンブリをグローバル アセンブリ キャッシュにインストールします。 一般的には、明らかにアセンブリを共有する必要がある場合を除いて、アセンブリの依存関係はプライベートにし、アセンブリはアプリケーション ディレクトリに配置します。 また、COM 相互運用またはアンマネージ コードからアセンブリにアクセスできるようにするために、アセンブリをグローバル アセンブリ キャッシュにインストールする必要はありません。

メモメモ

アセンブリをグローバル アセンブリ キャッシュにインストールしないようにする必要がある場合もあります。アプリケーションを構成するアセンブリの 1 つをグローバル アセンブリ キャッシュに配置した場合は、アプリケーション ディレクトリをコピーする xcopy コマンドを使用してアプリケーションをレプリケートしたりインストールしたりすることはできなくなります。この場合、グローバル アセンブリ キャッシュ内に配置したアセンブリも移動する必要があります。

アセンブリをグローバル アセンブリ キャッシュに配置するには、次の 2 つの方法があります。

  • グローバル アセンブリ キャッシュを扱うことができるようにデザインされたインストーラーを使用する。 これは、アセンブリをグローバル アセンブリ キャッシュにインストールするために一般的に使用される方法です。

  • Windows Software Development Kit (SDK) に用意されているグローバル アセンブリ キャッシュ ツール (Gacutil.exe) という開発者ツールを使用する。

  • メモメモ

    配置時にアセンブリをグローバル アセンブリ キャッシュにインストールするには、Windows Installer 2.0 を使用する必要があります。グローバル アセンブリ キャッシュ ツールの使用は、開発時のみに限定してください。グローバル アセンブリ キャッシュ ツールでは、Windows インストーラーを使用した場合に提供されるアセンブリ参照カウントやその他の機能が提供されません。

通常、管理者は、書き込みおよび実行アクセスを制御するアクセス制御リスト (ACL: Access Control List) を使用して systemroot ディレクトリを保護します。 グローバル アセンブリ キャッシュは、systemroot ディレクトリのサブディレクトリにインストールされるため、このディレクトリの ACL を継承します。 グローバル アセンブリ キャッシュからファイルを削除する場合は、管理者権限を持つユーザーに対してだけ許可することをお勧めします。

グローバル アセンブリ キャッシュに配置するアセンブリには、厳密な名前を付けておく必要があります。 アセンブリをグローバル アセンブリ キャッシュに追加すると、アセンブリを構成するすべてのファイルに対して、整合性チェックが実行されます。 キャッシュはこのような整合性チェックを実行することで、ファイルが変更されたにもかかわらず、マニフェストにその変更が反映されていないなど、アセンブリに不整合が生じていないかどうかを確認します。

参照

概念

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

厳密な名前付きアセンブリ

その他の技術情報

アセンブリとグローバル アセンブリ キャッシュの使用

履歴の変更

日付

履歴

理由

2010 年 6 月

.NET Framework Version 4 以降で廃止になったシェル拡張機能に関する記述を削除しました。

コンテンツ バグ修正