有一枚举的所有支持处理架构: http://msdn.microsoft.com/en-us/library/system.reflection.processorarchitecture.aspx

是否有任何方法来确定哪一个对应的运行环境?系统。反射。大会。GetExecutingAssembly().ProcessorArchitecture返回集--显然是错误的。

编辑:雷斯尼克博扬发表一个答案并删除它。我看到一些澄清的是,需要从局部跟踪我得到了。

大会需要运行的多重结构和做不同的东西基于什么会说明的运行过程的接受。基本上,我需要选择哪个版本的地DLL负荷。我有一个对每个建筑。

有帮助吗?

解决方案

P /调用的GetSystemInfo 是微不足道从.Net和轻得多重量比WMI。此外,它返回架构由过程所看到这样一个64位机器上的一个过程WOW将看到x86和本机进程将看到的x64

其他提示

这几个WMI设置你可能想试试。我没有64位系统的方便的时刻,但它应该很容易检查。源代码如下。注意,你最终可能会具有的使用组合的话(例如一个找到哇,另一找到机32vs.64等)。

此外,检查了 http://social.msdn.microsoft.com/Forums/en-US/windowssdk/thread/b1cfef99-5247-47c5-93d4-31eb6849df48 一些更多的讨论。

using System;
using System.Management;
class Program
{
    static void Main(string[] args)
    {
        foreach (ManagementBaseObject o in new ManagementClass("Win32_OperatingSystem").GetInstances())
        {
            Console.WriteLine("Win32_OperatingSystem.OSArchitecture = " + o.Properties["OSArchitecture"].Value);
            break;
        }
        foreach (ManagementBaseObject o in new ManagementClass("Win32_ComputerSystem").GetInstances())
        {
            Console.WriteLine("Win32_ComputerSystem.SystemType = " + o.Properties["SystemType"].Value);
            break;
        }
        Console.ReadKey();
    }
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top