Dot-Net

如何判斷 .NET 程序集是否編譯為 x86、x64 或任何 CPU

  • October 19, 2009

發現(無需訪問源項目).NET 程序集 DLL 是否被編譯為“x86”、“x64”或“任何 CPU”的最簡單方法是什麼?

更新:命令行實用程序足以滿足我的即時需求,但只是為了完整起見,如果有人想告訴我如何以程式方式進行操作,那我肯定也會感興趣。

如果您只想在給定的 dll 上找到它,那麼您可以使用 Windows SDK 中的CorFlags工具:

CorFlags.exe assembly.dll

如果您想使用程式碼來完成,請查看Module類的GetPEKind方法:

Assembly assembly = Assembly.LoadFrom("path to dll");
PortableExecutableKinds peKind;
ImageFileMachine imageFileMachine;
assembly.ManifestModule.GetPEKind(out peKind, out imageFileMachine)

然後您需要檢查peKind以檢查其值。有關詳細資訊,請參閱MSDN 文件PortableExecutableKinds

引用自:https://stackoverflow.com/questions/1591557