C#中是否有#define,可让我在编译时知道我是针对x86(Win32)还是x64(Win64)进行编译?

最佳答案

默认情况下,无法执行此操作。原因是C#代码不是在CLR上运行时才针对特定平台而设计的。

可以手动滚动。您可以在Visual Studio中使用项目配置设置来定义自己的常量。或者,如果您想要更简化一点,则可以自己编辑.csproj并手动滚动一些具有各种定义的配置。

例如,您可以使您的项目文件如下所示。我删除了一些信息,以使x86/amd64信息更清晰。

  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
    <!-- ... -->
    <DefineConstants>TRACE;DEBUG;X86</DefineConstants>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|amd64' ">
    <!-- ... -->
    <DefineConstants>TRACE;DEBUG;AMD64</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>

将其添加到.csproj文件中后,在我的项目中为我提供了2种新的平台配置。

关于c# - 编译时目标平台/处理器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/524196/

10-10 12:43