如何在运行时知道我是否在c#中使用x86或x64模式

时间:2011-02-20 02:40:14

标签: c# .net x86 64-bit

  

可能重复:
  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#中做到这一点?

由于

4 个答案:

答案 0 :(得分:22)

您可以查看IntPtr.Size4还是8

答案 1 :(得分:13)

使用.NET 4.0中引入的System.Environment.Is64BitOperatingSystem属性。 According to MSDN

确定当前操作系统是否为64位操作系统,如果操作系统为64位,则返回true;否则,false

答案 2 :(得分:6)

您只需通过IntPtr检查IntPtr.Size的尺寸,即可查看您的流程运行情况:

  • 如果是8个字节,那么您将作为x64进程运行。
  • 如果是4个字节,那么您将作为x86进程运行..

在.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代码。