GACからDLLをエクスポートする

Windows

GAC から DLL をエクスポートする必要があったため普通無い調べました。

スポンサーリンク

GAC とは?

  • Global Assembly Cache のことです。
  • マシンでグローバルにアセンブリを参照出来ます。
  • 規定のパスは「%windir%\assembly」です。

GAC をのぞく

エクスプローラーで「C:\Windows\assembly」を開いてみます。

通常の表示とは若干異なります。
これは「アセンブリキャッシュビューア」によるものらしいです。

アセンブリキャッシュビューアが有効だと DLL がコピーできないようです。
これでは困るのでこれを無効にします。

アセンブリキャッシュビューアを無効にする

regedit.exe を管理者権限で起動します。
「HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion」で右クリックし「新規」→「DWORD(32ビット)」をクリックします。

名前を「DiableCacheViewer」とします。
「DisableCacheViewer」を右クリックし、修正をクリックします。

「値のデータ」を「1」とし、OKをクリックします。

これでアセンブリキャッシュビューアが無効になります。

エクスプローラーで「C:\Windows\assembly」を開いてみるとアセンブリキャッシュビューアが無効になったことが分かります。

GUI でやるのがめんどくさい人は PowerShel でも出来ます。

 New-ItemProperty -path "HKLM:\Software\Microsoft\Fusion" -name "DisableCacheViewer" -value 1 –PropertyType DWORD -Force

GAC から DLL をエクスポートする

アセンブリキャッシュビューアを無効にすればあとは好きなだけ DLL をコピー出来ます。

Copy-Item -Path C:\Windows\assembly\GAC_32\ESRI.ArcGIS.ADF -Destination D:\Somewhere -Force -Recurse

裏話

ArcGIS 10.1 から 10.6 にアップグレードした際にジオコーディングバッチが動かなくなりました。
ログを見ると DLL の参照がありません的なメッセージがありました。
そこでバッチで参照している DLL を見てみると ArcGIS Web ADF なるものを発見しました。
ArcGIS Web ADF について調査すると…

次期バージョンの ArcGIS 10.2 がいよいよ来月末リリースする予定です。前回のバージョン 10.1 のリリースが 2012 年 10 月 1 日でしたのでちょうど 1 年の歳月を経てのバージョンアップとなります。
この ArcGIS 10.2 のリリースに伴い、ArcGIS 10.1 までサポートされていたいくつかのコンポーネントや環境などがサポート終了となります。
目立ったところでは、ArcGIS for Server に付属していた Web アプリケーション開発キットの Web ADF(Application Developer Framework)および ArcGIS Server Manager のウィザードを使って作成できる Web マッピング アプリケーションが提供されなくなります。これらについてはすでに JavaScript や Flex、そして Silverlight といった各種 Web API を提供しており、それらを使用することをお勧めしています。

そりゃあ 10.6 で提供されているわけないよなー
ということで旧サーバーから DLL を取り出す必要があったためこの記事を書くに至りました。

タイトルとURLをコピーしました