可能重复:
How do I tell if my application is running as a 32 or 64 bit application?
您好
我在c#(Framework 3.5 SP1)中有一个应用程序,我需要在运行时加载一个非托管程序集,但有两个不同的版本,一个用于x86,另一个用于x64,所以我需要知道在运行时mode是运行的应用程序
我已经看到了这个POST但它适用于C ++,在C#中有更简单的方法吗?或者我怎样才能在C#中做到这一点?
由于
答案 0 :(得分:22)
您可以查看IntPtr.Size
是4
还是8
。
答案 1 :(得分:13)
使用.NET 4.0中引入的System.Environment.Is64BitOperatingSystem
属性。 According to MSDN:
确定当前操作系统是否为64位操作系统,如果操作系统为64位,则返回true
;否则,false
。
答案 2 :(得分:6)
您只需通过IntPtr
检查IntPtr.Size
的尺寸,即可查看您的流程运行情况:
在.NET中,您可以将项目属性中的Platform Target
设置为Any CPU
,以便在x64 OS上将应用程序自动运行为x64,在具有相同二进制文件的x86 OS上自动运行x86。
您的应用程序甚至可以在x64操作系统上运行,因为启动它的进程可以在WOW64仿真上运行并启动您的进程。以下是在x64操作系统上run your x64 process as an x86 process的一些其他方法。
答案 3 :(得分:-3)
这篇MSDN博客文章是一个好的开始。 GetEnvironmentVariable("PROCESSOR_ARCHITECTURE").ToString()
还会在Mono Paint中看到GetPlatform
代码。