回答
试图加载程序集,找出是一个先有鸡还是先有蛋的命题。如果你没有得到一个BadImageFormatException,那么这个拱是适当的,你不再关心它是什么。如果你确实得到了异常,那么程序的配置是错误的。在代码中你无能为力。
假设您只查看.net程序集,可以使用CorFlags.exe来查看图像的标题。
This blog post解释了用于确定如何读取结果的用法。摘录:
用法:Corflags.exe大会[选项]
如果没有指定任何选项,将显示给定的图像标志。
...
这里是头部的每个组件是指:
版本:包含.NET的Redist与二进制是 内置的版本。
CLR标头:2.0表示.Net 1.0或.Net 1.1(Everett)图像,而2.5表示.Net 2.0(Whidbey)图像。
CorFlags:这是通过OR'g特定的标志来计算以指示 图像是否是ILONLY,其位数等,并且 使用由加载程序。 ILONLY:托管 图像被允许包含原生 的代码。要成为“anycpu”,图像应该只包含IL。
32BIT:即使你只包含IL仍可能 有平台依赖性,32位 标志是用来区分“86”,从“anycpu”图像 图像的图像。 64位 图像通过事实 区分它们具有PE类型的PE32 +。
最有趣的方面是标题的PE和32BIT标志。 这些组合来指定组件 类型。下面是他们将如何看 像:
- anycpu:PE = PE32和32位= 0
- 86:PE = PE32和32位= 1
- 64位:PE = PE32 +和32BIT = 0
什么是更好的:1)AssemblyName.ProcessorArchitecture,2)CorFlags.exe(和解析器C# - Process.Start),3)ApiChange https://apichange.codeplex。 COM /或4)PE阅读器http://stackoverflow.com/a/9767750/206730? – Kiquenet 2014-03-25 14:56:52
我安装VS 2008,VS 2010,VS 2012和VS 2013.我在C:\ Program Files(x86)\ Microsoft SDKs \ Windows \中的子文件夹中有8个文件CorFlags.exe。我应该用哪个? – Kiquenet 2014-03-25 15:04:56
您还可以使用FileStream读取程序集文件。 Windows可执行文件的格式在Microsoft pe/coff规范中指定。你可以在这里阅读:
http://www.microsoft.com/whdc/system/platform/firmware/pecoff.mspx
- 1. 向导式图像处理应用程序的体系结构应用程序
- 2. C#如何获得操作系统体系结构(x86或x64)?
- 3. 如何处理与Swift中的结构体的关系?
- 4. Cassandra集群体系结构
- 5. Kaa集群体系结构
- 6. 如何获得'.a'文件的体系结构?
- 7. Python中插件体系结构的多处理或多线程处理
- 8. .NET N层体系结构:我该如何处理Model对象?
- 9. Umbraco应用程序的体系结构
- 10. Intranet应用程序的体系结构
- 11. 如何使用Kernel32.dll获得处理器ID
- 12. 无论目标机器的体系结构如何获得Program Files的路径
- 13. 使用Mono.Cecil的.NET程序集目标体系结构
- 14. 处理器体系结构不匹配 - Visual Studio,Nuget,Stylecop
- 15. 使用JS或PHP检查用户处理器体系结构
- 16. Linux Kernel 0.01支持什么? (处理器体系结构)
- 17. 多处理器体系结构和Ring 3
- 18. ASP.NET 2.0 - ClickOnce - 处理器体系结构变更
- 19. 处理文件系统更改的最佳体系结构?
- 20. 如何获得多处理结果.Pool.apply_async
- 21. 适当的AJAX处理程序结构
- 22. 如何获得iphone电影播放处理程序(一个UIWindow处理器)
- 23. Db4o Mvc应用程序体系结构
- 24. Django应用程序体系结构
- 25. iPhone应用程序体系结构
- 26. ASP.NET应用程序体系结构
- 27. Seam应用程序体系结构
- 28. Spring Web应用程序体系结构
- 29. 应用程序设计/体系结构
- 30. 配置应用程序体系结构
除非你使用'ReflectionOnlyLoadFrom'。 http://stackoverflow.com/q/9470199/103167 – 2012-02-27 18:38:06