? ? ? ? 本文為轉載文章,原文地址:http://www.cnblogs.com/qguohog/archive/2011/09/13/2174897.html,僅僅是記錄供后續使用,如有侵權請通知刪除。
在發布dll時,可以選擇編譯為x86模式、x64模式以及Any Cpu模式等。那么對于已經發布的dll文件,怎么知道它是支持什么系統的呢?
方法一:Reflector
???? 對于.Net dll文件,用Reflector工具可進行辨別:
??? 其中的Platform Target就指明了該dll在編譯時選擇的目標系統。
方法二:CorFlags.exe工具
??? 使用Vistual Studio.Net自帶的corflags工具,先打開vs.net 命令窗口:
????
??? 輸入coreflags <assembly path>:
????
??? 其中PE和32BIT的值可以看出該dll支持的系統位數:
anycpu: PE = PE32?? and 32BIT = 0
x86:????? PE = PE32?? and 32BIT = 1
x64:????? PE = PE32+ and 32BIT = 0(可參考:http://blogs.msdn.com/b/gauravseth/archive/2006/03/07/545104.aspx)
方法三:Dumpin.exe工具
??????通過Vs.net tools中所帶的dumpin命令可以查看:
???? dumpbin /headers <assembly path>
?????
???? 查看machine相關屬性可辨別其支持的系統位數。
???? 該方法還可以查看非.Net編譯的dll信息。