C#指令指示32位或64位构建

cos*_*son 8 c# visual-studio-2008

是否有某种C#指令在使用开发机器(32位或64位)时使用,该指令说明了以下内容:

if (32-bit Vista)
    // set a property to true
else if (64-bit Vista)
    // set a property to false

但我想在Visual Studio中这样做,因为我有一个我正在研究的应用程序需要在32/64位版本的Vista中进行测试.

这样的事情可能吗?

mar*_*rcc 13

你能在运行时做到吗?

if (IntPtr.Size == 4)
  // 32 bit
else if (IntPtr.Size == 8)
  // 64 bit
Run Code Online (Sandbox Code Playgroud)


Pau*_*der 11

64位有两个需要注意的条件.第一个是OS 64位,第二个是64位运行的应用程序.如果您只关心应用程序本身,可以使用以下内容:

if( IntPtr.Size == 8 )
   // Do 64-bit stuff
else
   // Do 32-bit
Run Code Online (Sandbox Code Playgroud)

在运行时,JIT编译器可以优化false条件,因为IntPtr.Size属性是常量.

顺便提一下,要检查操作系统是否为64位,我们使用以下内容

if( Environment.GetEnvironmentVariable( "PROCESSOR_ARCHITEW6432" ) != null )
    // OS is 64-bit;
else
    // OS is 32-bit
Run Code Online (Sandbox Code Playgroud)