Gacutil.exe (グローバル アセンブリ キャッシュ ツール)

更新 : 2011 年 4 月

グローバル アセンブリ キャッシュ ツールを使用すると、グローバル アセンブリ キャッシュとダウンロード キャッシュの内容を表示および操作できます。

このツールは Visual Studio および Windows SDK と一緒に自動的にインストールされます。 このツールを実行するには、Visual Studio コマンド プロンプトまたは Windows SDK コマンド プロンプト (CMD シェル) を使用することをお勧めします。 これらのユーティリティを使用すると、インストール フォルダーに移動することなくツールを簡単に実行できます。 詳細については、「Visual Studio と Windows SDK のコマンド プロンプト」を参照してください。

  • コンピューターに Visual Studio がインストールされている場合は、タスク バーの [Start] ボタンをクリックし、[All Programs]、[Visual Studio]、[Visual Studio Tools]、[Visual Studio Command Prompt] の順にクリックします。

    または

    コンピューターに Windows SDK がインストールされている場合は、タスク バーの [Start] ボタンをクリックし、[All Programs]、Windows SDK のフォルダー、[Command Prompt] (または [CMD Shell]) の順にクリックします。

  • コマンド プロンプトに次のように入力します。

gacutil [options] [assemblyName | assemblyPath | assemblyListFile]

パラメーター

引数

説明

assemblyName

アセンブリの名前。 myAssembly などの部分的に指定したアセンブリ名、または myAssembly, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0038abc9deabfle5 などの完全に指定したアセンブリ名を指定できます。

assemblyPath

アセンブリ マニフェストを含むファイルの名前。

assemblyListFile

インストールまたはアンインストールするアセンブリを一覧表示する ANSI テキスト ファイルへのパス。 テキスト ファイルを使用してアセンブリをインストールするには、ファイルの行ごとに各アセンブリへのパスを指定します。 このツールは、assemblyListFil の位置を基準にして相対パスを解釈します。 テキスト ファイルを使用してアセンブリをアンインストールするには、ファイルの行ごとに各アセンブリの完全限定アセンブリ名を指定します。 このトピックの後半にある assemblyListFile の内容の例を参照してください。

オプション

説明

/cdl

ダウンロード キャッシュの内容を削除します。

/f

このオプションを /i オプションまたは /il オプションと共に使用して、アセンブリを強制的に再インストールします。 同じ名前のアセンブリがグローバル アセンブリ キャッシュに既に存在する場合、既存のアセンブリは上書きされます。

/h[elp]

このツールのコマンド構文とオプションを表示します。

/i assemblyPath

アセンブリをグローバル アセンブリ キャッシュにインストールします。

/if assemblyPath

アセンブリをグローバル アセンブリ キャッシュにインストールします。 同じ名前のアセンブリがグローバル アセンブリ キャッシュに既に存在する場合、既存のアセンブリは上書きされます。

このオプションを指定するのは、/i オプションと /f オプションを一緒に指定するのと同じです。

/il assemblyListFile

assemblyListFile で指定された 1 つ以上のアセンブリをグローバル アセンブリ キャッシュにインストールします。

/ir assemblyPath

scheme

id

description

アセンブリをグローバル アセンブリ キャッシュにインストールし、そのアセンブリをカウントするための参照を追加します。 このオプションと共に assemblyPathschemeid、および description の各パラメーターを指定する必要があります。 これらのパラメーターとして指定できる有効な値については、/r オプションを参照してください。

このオプションを指定するのは、/i オプションと /r オプションを一緒に指定するのと同じです。

/l [assemblyName]

グローバル アセンブリ キャッシュの内容を一覧表示します。 assemblyName パラメーターを指定した場合は、その名前と一致するアセンブリだけが一覧表示されます。

/ldl

ダウンロードされたファイルのキャッシュの内容を一覧表示します。

/lr [assemblyName]

すべてのアセンブリとそれらに該当する参照カウントを一覧表示します。 assemblyName パラメーターを指定した場合は、その名前と一致するアセンブリと、それらに該当する参照カウントだけが一覧表示されます。

/nologo

Microsoft 著作権情報を表示しません。

/r [assemblyName | assemblyPath]

scheme

id

description

インストールまたはアンインストールするアセンブリへのトレースされた参照を指定します。 このオプションは、/i/il/u、または /ul の各オプションと共に指定します。

アセンブリをインストールするには、このオプションと共に assemblyPathschemeid、および description の各パラメーターを指定します。 アセンブリをアンインストールするには、assemblyNameschemeid、および description の各パラメーターを指定します。

アセンブリへの参照を削除するには、アセンブリをインストールしたときに /i オプションおよび /r (または /ir) オプションと共に指定したのと同じ schemeid、および description の各パラメーターを指定する必要があります。 アセンブリをアンインストールする場合、それが削除する最後の参照で、Windows インストーラーにアセンブリへの未解決の参照がまったくないときには、アセンブリもグローバル アセンブリ キャッシュから削除されます。

scheme パラメーターはインストール スキームのタイプを指定します。 次のいずれかの値を指定できます。

  • UNINSTALL_KEY: インストーラーがアプリケーションを Microsoft Windows の [アプリケーションの追加と削除] に追加する場合は、この値を指定します。 アプリケーションは、レジストリ キーを HKLM\Software\Microsoft\Windows\CurrentVersion に追加して、そのアプリケーション自体を [アプリケーションの追加と削除] に追加します。

  • FILEPATH: インストーラーがアプリケーションを [アプリケーションの追加と削除] に追加しない場合は、この値を指定します。

  • OPAQUE: レジストリ キーまたはファイル パスの指定をインストール シナリオで行わない場合は、この値を指定します。 この値を指定した場合には、id パラメーターとしてカスタム情報を指定できます。

id パラメーターとして指定する値は、scheme パラメーターに指定した値によって決まります。

  • scheme パラメーターとして UNINSTALL_KEY を指定した場合は、HKLM\Software\Microsoft\Windows\CurrentVersion レジストリ キーに設定したアプリケーションの名前を指定します。 たとえば、レジストリ キーが HKLM\Software\Microsoft\Windows\CurrentVersion\MyApp の場合は、id パラメーターとして MyApp を指定します。

  • scheme パラメーターとして FILEPATH を指定した場合は、id パラメーターとして、アセンブリをインストールする実行可能ファイルへの完全パスを指定します。

  • scheme パラメーターとして OPAQUE を指定した場合は、id パラメーターとして任意のデータを指定できます。 指定するデータは二重引用符 ("") で囲む必要があります。

description パラメーターを使用して、インストールするアプリケーションに関する説明を指定できます。 この情報は、参照を列挙した場合に表示されます。

/silent

すべての出力を表示しません。

/u assemblyName

アセンブリをグローバル アセンブリ キャッシュからアンインストールします。

/uf assemblyName

指定したアセンブリへのすべての参照を削除して、アセンブリを強制的にアンインストールします。

このオプションを指定するのは、/u オプションと /f オプションを一緒に指定するのと同じです。

メモメモ
このオプションを使用しても、Microsoft Windows インストーラーを使用してインストールされたアセンブリを削除することはできません。削除しようとすると、エラー メッセージが表示されます。

/ul assemblyListFile

assemblyListFile で指定された 1 つ以上のアセンブリをグローバル アセンブリ キャッシュからアンインストールします。

/u[ngen] assemblyName

指定したアセンブリをグローバル アセンブリ キャッシュからアンインストールします。 指定したアセンブリが既存の参照カウントを持っている場合、参照カウントは表示されますが、アセンブリはグローバル アセンブリ キャッシュから削除されません。

メモメモ
.NET Framework Version 2.0 では、/ungen はサポートされていません。代わりに、Ngen.exe (ネイティブ イメージ ジェネレーター) の uninstall コマンドを使用します。

.NET Framework Version 1.0 と 1.1 で /ungen を指定すると、Gacutil.exe はネイティブ イメージ キャッシュからアセンブリを削除します。 このキャッシュは、Ngen.exe (ネイティブ イメージ ジェネレーター) を使用して作成したアセンブリのネイティブ イメージを格納します。

/ur assemblyName

scheme

id

description

指定したアセンブリへの参照をグローバル アセンブリ キャッシュからアンインストールします。 アセンブリへの参照を削除するには、アセンブリをインストールしたときに /i オプションおよび /r (または /ir) オプションと共に指定したのと同じ schemeid、および description の各パラメーターを指定する必要があります。 これらのパラメーターとして指定できる有効な値については、/r オプションを参照してください。

このオプションを指定するのは、/u オプションと /r オプションを一緒に指定するのと同じです。

/?

このツールのコマンド構文とオプションを表示します。

解説

このツールは、キャッシュの表示に関して Windows のシェル拡張機能 (Shfusion.dll) とほとんど同じ機能を提供しますが、スクリプト、メイクファイル、およびバッチ ファイルについては、このツールの方が適しています。

メモメモ

Gacutil.exe を使用するには管理者権限が必要です。

Gacutil.exe を使用すると、アセンブリのキャッシュへのインストールやキャッシュからの削除、およびキャッシュ内容の一覧表示を実行できます。

Gacutil.exe には、Windows インストーラーでサポートされる参照カウント スキームに類似した参照カウントをサポートするオプションが用意されています。 Gacutil.exe を使用して、同じアセンブリをインストールする 2 つのアプリケーションをインストールできます。このツールは、アセンブリへの参照の数を追跡します。 その結果、両方のアプリケーションがアンインストールされるまで、アセンブリはコンピューター上にとどまります。 実際の製品のインストールに Gacutil.exe を使用する場合は、参照カウントをサポートするオプションを使用してください。 アセンブリをインストールし、それをカウントするための参照を追加するには、/i オプションと /r オプションを一緒に使用します。 アセンブリの参照カウントを削除するには、/u オプションと /r オプションを一緒に使用します。 /i オプションと /u オプションを単独で使用しても、参照カウントはサポートされないので注意してください。 これらのオプションは、製品開発中に使用するのには適していますが、実際の製品のインストールには適していません。

ANSI テキスト ファイルに格納されているアセンブリの一覧をインストールまたはアンインストールするには、それぞれ /il オプションまたは /ul オプションを使用します。 テキスト ファイルの内容は正しく書式設定されている必要があります。 テキスト ファイルを使用してアセンブリをインストールするには、ファイルの行ごとに各アセンブリへのパスを指定します。 インストールするアセンブリを含むファイルの内容を表示する例を次に示します。

myAssembly1.dll
myAssembly2.dll
myAssembly3.dll

テキスト ファイルを使用してアセンブリをアンインストールするには、ファイルの行ごとに各アセンブリの完全限定アセンブリ名を指定します。 アンインストールするアセンブリを含むファイルの内容を表示する例を次に示します。

myAssembly1,Version=1.1.0.0,Culture=en,PublicKeyToken=874e23ab874e23ab
myAssembly2,Version=1.1.0.0,Culture=en,PublicKeyToken=874e23ab874e23ab
myAssembly3,Version=1.1.0.0,Culture=en,PublicKeyToken=874e23ab874e23ab

アセンブリ mydll.dll をグローバル アセンブリ キャッシュにインストールするコマンドを次に示します。

gacutil /i mydll.dll

アセンブリ hello への参照カウントがない場合に、そのアセンブリをグローバル アセンブリ キャッシュから削除するコマンドを次に示します。

gacutil /u hello

上のコマンドでは、アセンブリ名が完全に指定されていないため、複数のアセンブリがアセンブリ キャッシュから削除される可能性もあります。 たとえば、キャッシュ内に hello のバージョン 1.0.0.0 と 3.2.2.1 が両方ともインストールされている場合にコマンド gacutil /u hello を実行すると、アセンブリは両方とも削除されます。

複数のアセンブリを削除しないようにするには、次の例のようなコードを使用します。 このコマンドでは、完全に指定したバージョン番号、カルチャ、および公開キーと一致するアセンブリ hello だけが削除されます。

gacutil /u hello, Version=1.0.0.1, Culture="de",PublicKeyToken=45e343aae32233ca

ファイル assemblyList.txt で指定されたアセンブリをグローバル アセンブリ キャッシュにインストールするコマンドを次に示します。

gacutil /il assemblyList.txt

ファイル assemblyList.txt で指定されたアセンブリをグローバル アセンブリ キャッシュから削除するコマンドを次に示します。

gacutil /ul assemblyList.txt

次のコマンドにより myDll.dll がグローバル アセンブリ キャッシュにインストールされ、myDll.dll をカウントするための参照が追加されます。 アセンブリ myDll.dll はアプリケーション MyApp によって使用されます。 UNINSTALL_KEY MyApp パラメーターは、Windows の [アプリケーションの追加と削除] に MyApp を追加するレジストリ キーを指定します。 description パラメーターは My Application Description と指定されています。

gacutil /i /r myDll.dll UNINSTALL_KEY MyApp "My Application Description"

次のコマンドにより myDll.dll がグローバル アセンブリ キャッシュにインストールされ、myDll.dll をカウントするための参照が追加されます。 scheme パラメーター FILEPATH と id パラメーター c:\applications\myApp\myApp.exe は、myDll.dll. をインストールするアプリケーションへのパスを指定します。description パラメーターは MyApp として指定されています。

gacutil /i /r myDll.dll FILEPATH c:\applications\myApp\myApp.exe MyApp

次のコマンドにより myDll.dll がグローバル アセンブリ キャッシュにインストールされ、myDll.dll をカウントするための参照が追加されます。 scheme パラメーター OPAQUE が指定されているので、id パラメーターと description パラメーターをカスタマイズできます。

gacutil /i /r mydll.dll OPAQUE "Insert custom application details here" "Insert Custom description information here"

アプリケーション myApp による myDll.dll への参照を削除するコマンドを次に示します。 これがアセンブリへの最後の参照の場合は、アセンブリもグローバル アセンブリ キャッシュから削除されます。

gacutil /u /r myDll.dll FILEPATH c:\applications\myApp\myApp.exe MyApp

グローバル アセンブリ キャッシュの内容を一覧表示するコマンドを次に示します。

gacutil /l

参照

参照

Shfusion.dll (アセンブリ キャッシュ ビューアー)

Regasm.exe (アセンブリ登録ツール)

Visual Studio と Windows SDK のコマンド プロンプト

概念

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

その他の技術情報

.NET Framework ツール

履歴の変更

日付

履歴

理由

2011 年 4 月

Visual Studio と Windows SDK のコマンド プロンプトの使用に関する情報を追加。

情報の拡充