豚吐露@wiki
GAC内のDLLを手に入れる方法
最終更新:
Bot(ページ名リンク)
-
view
GAC内のDLLを手に入れる方法
■GACからDLLを取得する
エクスプローラで『C:\Windows\assembly』を見る。server側のGAC内で対象を探す。
エクスプローラで『C:\Windows\assembly』を見る。server側のGAC内で対象を探す。
で、コマンドプロンプト起動。
エクスプローラでは表示方法変わってんでダメらしい。(´・ω・`)
エクスプローラでは表示方法変わってんでダメらしい。(´・ω・`)
> cd C:\Windows\assembly > dir ドライブ C のボリューム ラベルがありません。 ボリューム シリアル番号は C4AC-D2B1 です C:\Windows\assembly のディレクトリ 2010/11/21 17:16 <DIR> GAC_32 2015/10/14 17:51 <DIR> GAC_64 2010/11/21 17:16 <DIR> GAC_MSIL 2015/10/14 17:03 <DIR> NativeImages_v2.0.50727_32 2015/10/14 17:03 <DIR> NativeImages_v2.0.50727_64 2015/10/14 17:03 <DIR> temp 2015/10/14 17:51 <DIR> tmp 0 個のファイル 0 バイト 7 個のディレクトリ 77,293,006,848 バイトの空き領域
とりあえず、用があるのは、GAC_32とGAC_64。
それぞれ、x86版とAMD64版が格納される。MSILは、多分、GAC_MSIL。見てないけど...
それぞれ、x86版とAMD64版が格納される。MSILは、多分、GAC_MSIL。見てないけど...
今回は、例えばOracleの64bit版のdllを欲してる場合とする。
> cd gac_64 > dir : : 2015/10/14 17:51 <DIR> Oracle.DataAccess 2015/10/14 17:51 <DIR> Oracle.DataAccess.resources 2015/10/14 17:51 <DIR> Oracle.[[Database]].Extensions 2015/10/14 17:51 <DIR> Oracle.Web 2015/10/14 17:51 <DIR> Oracle.Web.resources 2015/10/14 17:51 <DIR> Policy.2.102.Oracle.DataAccess 2015/10/14 17:51 <DIR> Policy.2.111.Oracle.DataAccess 2015/10/14 17:51 <DIR> Policy.2.111.Oracle.Web : :
が、該当するので...
※該当するヤツかどうかは、公開キートークンとかで絞り込めば分かると思う。
※該当するヤツかどうかは、公開キートークンとかで絞り込めば分かると思う。
dir名をコピって来て、テキストエディタで編集。batを作ってやる。
こんな感じのtextを...
Oracle.DataAccess Oracle.DataAccess.resources Oracle.Database.Extensions Oracle.Web Oracle.Web.resources Policy.2.102.Oracle.DataAccess Policy.2.111.Oracle.DataAccess Policy.2.111.Oracle.Web
正規表現使って置換する。
置換前 | ^(.+)$ |
置換後 | xcopy /i /e /y $1 c:\\wk\\tmp\\$1 ※とりあえず、出力先は『c:\wk\tmp\』にしてみました。 |
xcopy /i /e /y Oracle.DataAccess c:\wk\tmp\Oracle.DataAccess xcopy /i /e /y Oracle.DataAccess.resources c:\wk\tmp\Oracle.DataAccess.resources xcopy /i /e /y Oracle.Database.Extensions c:\wk\tmp\Oracle.Database.Extensions xcopy /i /e /y Oracle.Web c:\wk\tmp\Oracle.Web xcopy /i /e /y Oracle.Web.resources c:\wk\tmp\Oracle.Web.resources xcopy /i /e /y Policy.2.102.Oracle.DataAccess c:\wk\tmp\Policy.2.102.Oracle.DataAccess xcopy /i /e /y Policy.2.111.Oracle.DataAccess c:\wk\tmp\Policy.2.111.Oracle.DataAccess xcopy /i /e /y Policy.2.111.Oracle.Web c:\wk\tmp\Policy.2.111.Oracle.Web
で、コマンドプロンプトに貼り付けてやると...
こうなる。
こうなる。
#ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (width=)
sub dir以下にDLLが格納されてるので、見てみると良い。
ただし、OracleのDLLは、GACから引っ張ってくるだけではダメ。
GACに登録されるdllはただのwrapperで、他のdllも必要になる事が原因。
取ってくるdllによって、他に何が必要かも考慮してやる必要があるので注意!
GACに登録されるdllはただのwrapperで、他のdllも必要になる事が原因。
取ってくるdllによって、他に何が必要かも考慮してやる必要があるので注意!
更新日: 2015年11月17日 (火) 15時30分11秒