C# 编译时的目标平台/处理器

C# 编译时的目标平台/处理器,c#,.net,target,c-preprocessor,platform,C#,.net,Target,C Preprocessor,Platform,是否有一个“C中的定义”允许我在编译时知道我是为x86(Win32)还是x64(Win32)编译?我不知道。您必须在不同的项目配置中声明自己的配置。据我所知,Visual Studio仅定义调试和跟踪常量。而不是在项目配置中手动声明这样的常量,您可以使用它来构建项目。它可以在编译时确定构建平台,并相应地定义自定义指令。默认情况下,无法做到这一点。原因是,C#代码的设计目的不是针对在CLR上运行的特定平台 尽管如此,还是可以用手滚动这个。您可以使用Visual Studio中的项目配置设置来定义自

是否有一个“C中的定义”允许我在编译时知道我是为x86(Win32)还是x64(Win32)编译?

我不知道。您必须在不同的项目配置中声明自己的配置。

据我所知,Visual Studio仅定义调试和跟踪常量。而不是在项目配置中手动声明这样的常量,您可以使用它来构建项目。它可以在编译时确定构建平台,并相应地定义自定义指令。

默认情况下,无法做到这一点。原因是,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>

痕迹;调试;X86
痕迹;调试;AMD64
促使
4.
将其添加到.csproj文件中,在我的项目中为我提供了两种新的平台配置