x86 (Win32) 또는 x64 (Win64) 용으로 컴파일 할 경우 컴파일 타임에 알 수있는 #define이 C#에 있습니까?컴파일시 대상 플랫폼/프로세서
7
A
답변
0
나는 그렇지 않습니다. 다른 프로젝트 구성에서 자신의 것을 선언해야합니다.
1
내가 아는 한 Visual Studio는 DEBUG 및 TRACE 상수 만 정의합니다. 프로젝트 구성에서 수동으로 그러한 상수를 선언하는 대신 NANT을 사용하여 프로젝트를 빌드 할 수 있습니다. 컴파일 타임에 빌드 플랫폼을 결정하고 이에 따라 사용자 지정 지시문을 정의 할 수 있습니다.
6
기본적으로 이렇게 할 방법이 없습니다. 그 이유는 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 개의 새로운 플랫폼 구성이 제공됩니다.