削除できないグローバル・アセンブリ・キャッシュ(GAC)を削除する方法

GAC(グローバル・アセンブリ・キャッシュ)のアンインストールの方法を説明します。

そのままアンインストールできるものとできないものがあるのですが、今回は普通では削除できないものを削除する方法です。

ちなみに、wikiによると

グローバル アセンブリ キャッシュとは、マイクロソフト仕様の共通言語基盤 (英:Common Language Infrastructure、略称 : CLI)においてのコンピューター全域で共有される CLI アセンブリ キャッシュである。

難しい表現をしていますが、簡単に言うと、GACとはexeやdllのバージョン等の情報が格納されているところです。レジストリのようなものですね。

win7ではC:\WINDOWS\assemblyから確認できます。

asse

このGACにはアンインストールしたアプリケーションでもアセンブリが残ったままになります。そしてそれが原因でアプリケーションが動作しないことがあります。アンインストールしたアプリケーションを再度インストールしても「旧バージョンが残っています」と言われたり、バージョンアップしても旧バージョンを参照してしまったりとか。そんなときにGACからアンインストールしてやる必要があります。

通常はC:\WINDOWS\assemblyから該当のアセンブリをクリックし、右クリックしてアンインストールします。

通常はこれでいいのですが、アプリケーション自体をアンインストールした後にアセンブリを削除しようとすると「アクセスが拒否されました」という警告がでてアンインストールできません。これはユーザーアカウント制御(UAC)によるもの。よって、一旦UACをOFFにして再起動しないとダメです。

UACのOFFは下記の通りです。

「コントロールパネル」→「ユーザーアカウント」→「ユーザーアカウント制御設定の変更」。

ここのスライダーを一番下まで下げます。これでOFFになります。そうすると、GACから消せないアセンブリをアンインストールできるようになります。

以上、アンインストールできないアセンブリをGACからアンインストールする方法でした。

 

ティークリエイトブログのこの記事が読まれています