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

8

在C#中是否有一个#define可以让我在编译时知道我是为x86(Win32)还是x64(Win64)进行编译?

3个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
7
默认情况下是没有方法实现这个的。原因是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个新的平台配置。

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

0

我不知道有没有这样的功能。你需要在不同的项目配置中声明自己的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,