スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
当サイトは基本をすっ飛ばしてます。基本文法等は、@ITをどうぞ
カテゴリー: スポンサー広告

アセンブリ(*.dll)の情報に関する覚書(その弐)

(其の弐)そのアセンブリ、32bitですか?64bitですか?
32bitOSしか無い時代には悩む必要もない事なんだけど、最近は64bitOSが主流になりつつある。そうなると、そういう時代ならではの問題が発生する。
1プロセスにおける32ビットと64ビットの混在
GACに登録されているアセンブリを参照する場合は自動で切り替えてくれるけど、直接参照する(GACを経由しない)時、このアセンブリは果たしてどっちなんだろう?と思うことがある。そういう時には、CorFlagsを利用する。これも、仕事ではbatファイルを作って利用している。

set local;
set PATH=%PATH%;C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools;
CorFlags.exe %1
pause

これにアセンブリをドラッグアンドドロップすると、コマンドプロンプト上に情報が表示される。

C:\Users\xxxx>CorFlags.exe "C:\Users\xxxx\log4net.dll"
Microsoft (R) .NET Framework CorFlags Conversion Tool. Version 4.0.30319.18020
Copyright (c) Microsoft Corporation. All rights reserved.
Version : v4.0.30319
CLR Header: 2.5
PE : PE32
CorFlags : 0x9
ILONLY : 1
32BITREQ : 0
32BITPREF : 0
Signed : 1

詳しい見方は、↓に載っている。
How to interpret the corflags flags?
PE32で、32BITREQ=0, 32BITPREF=0なので、Any CPUでビルドされた、MSIL(プラットフォーム非依存のアセンブリ)であるところまでわかる。
CorFlagsは参照だけではなく、変更もできるらしい…。仕事では使わなさそうなので、参照だけで十分かな。
スポンサーサイト
当サイトは基本をすっ飛ばしてます。基本文法等は、@ITをどうぞ
カテゴリー: C# | コメント: 0 | トラックバック: 0


この記事へのコメント

コメントの投稿

非公開コメント


サイドバー背後固定表示サンプル

当ブログに書かれたソースコードは流用自由です。

バグ、スペルミス等はありうる事です。

ご利用の際は自己責任でお願いしますm(_ _)m

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。