Windows10では、GAC(グローバル・アセンブリ・キャッシュ)でアプリケーションのバージョンを管理しています。
アプリケーションをアンインストールしても、GAC(グローバル・アセンブリ・キャッシュ)が削除されておらず、新バージョンのアプリケーションをインストールしても古いバージョンを参照してしまうことがあります。
今回は、GAC(グローバル・アセンブリ・キャッシュ)のアンインストールの方法を説明します。
GAC(グローバル・アセンブリ・キャッシュ)とは
GAC(グローバル・アセンブリ・キャッシュ)とは、ザックリいうと、実行形式であるexeやdllのバージョン等の情報が格納されているところです。レジストリのようなものですね。
wikiによると、
グローバル アセンブリ キャッシュとは、マイクロソフト仕様の共通言語基盤 (英:Common Language Infrastructure、略称 : CLI)においてのコンピューター全域で共有される CLI アセンブリ キャッシュである。
そのままアンインストールできるものとできないものがあるのですが、今回は普通では削除できないものを削除する方法です。
Windows10のGAC
Windows10でGACは「C:\Windows\assembly」から確認できます。
アンインストールしても消えない
アンインストールしたアプリケーションでもGACのアセンブリが残ったままになるケースがあります。
それが原因でアプリケーションが動作しないことがあります。
よくあるのが、古いバージョンを削除(アンインストール)した後に新しいバージョンのアプリケーションをインストールしても、古いバージョンとして認識してしまうケース。
他にも、アンインストールしたアプリケーションを再度インストールしても「旧バージョンが残っています」と警告がでるケースも。
そんなときは、アセンブリキャッシュをアンインストールする必要があります。
GACをアンインストールする
Windows7では「C:\Windows\assembly」から該当のアセンブリキャッシュをクリックし、右クリックしてアンインストールできました。
Windows10では直接アンインストールができなくなりました。コマンドプロンプトを使用してアンインストールします。
削除コマンド
gacutil -u {アセンブリキャッシュ}
ここでは「System.Data.OracleClient.dll」を削除しました。
GACをアインインストールできない場合
通常はこれでいいのですが、アプリケーション自体をアンインストールした後にアセンブリを削除しようとすると「アクセスが拒否されました」という警告がでてアンインストールできません。
これはユーザーアカウント制御(UAC)によるものです。よって、一旦UACをOFFにして再起動しないとダメです。
UACのOFFは下記の通りです。
「コントロールパネル」→「ユーザーアカウント」→「ユーザーアカウント制御設定の変更」
→Windows10 ユーザーアカウント制御(UAC)のレベルを変更する
ここのスライダーを一番下「通知しない」まで下げます。これでOFFになります。これで、消せないGAC(グローバル・アセンブリ・キャッシュ)をアンインストールできるようになります。
アセンブリキャッシュをアンインストールしたら、UACは元に戻しておきましょう。
以上、Windows10でアンインストールできないGAC(グローバル・アセンブリ・キャッシュ)をアンインストールする方法でした。
コメント