【发布时间】:2010-12-01 11:41:27
【问题描述】:
这里有一个所有支持的处理器架构的枚举:http://msdn.microsoft.com/en-us/library/system.reflection.processorarchitecture.aspx
有没有什么方法可以判断哪个对应运行环境呢? System.Reflection.Assembly.GetExecutingAssembly().ProcessorArchitecture 返回 MSIL——显然是错误的。
编辑:Bojan Resnik 发布了一个答案并将其删除。我看到需要从我得到的部分跟踪中进行一些澄清。
程序集需要在多种架构上运行,并根据运行进程接受的程序集指令执行不同的操作。本质上,我需要选择要加载的本机 DLL 版本。每种架构都有一个。
【问题讨论】:
-
不是骗子。如果我在 WOW 中运行,我想要 x86 而不是 x64。
-
您真的需要区分所有这些架构,还是只需要区分 x86/x64?
-
如果我看到 Itanium 而不是因为在 Itanium 上加载 X64 而死,我想给出一个适当的错误。
-
Identifying the CPU architecture type using C# 上的相关答案也适合这个问题,无需使用 Module.GetPEKind 和 ImageFileMachine 枚举进行 p/invoke!
标签: .net pinvoke processor .net-assembly