저는 C# 클래스 라이브러리를 만들고 Visual Web Developer/Visual C# 2010의 베타 2를 사용하고 있습니다. 라이브러리가 빌드 된 .NET 버전에 대한 정보를 저장하려고합니다. v4.0의 .NET 버전 정의는 어떻게 되었습니까?
// What version of .net was it built under?
#if NET_1_0
public const string NETFrameworkVersion = ".NET 1.0";
#elif NET_1_1
public const string NETFrameworkVersion = ".NET 1.1";
#elif NET_2_0
public const string NETFrameworkVersion = ".NET 2.0";
#elif NET_3_5
public const string NETFrameworkVersion = ".NET 3.5";
#else
public const string NETFrameworkVersion = ".NET version unknown";
#endif
그래서 난 그냥 추가 할 수 있습니다 생각 : 과거에 내가 이것을 사용할 수 있었다
#elif NET_4_0
public const string NETFrameworkVersion = ".NET 4.0";
을 이제 프로젝트 -> 속성에서, 내 목표 프레임 워크는 ".NET 프레임 워크 4 ". 내가 확인한 경우 :
Assembly.GetExecutingAssembly().ImageRuntimeVersion
내 런타임 버전이 v4.0.21006임을 알 수 있습니다. 따라서 CPU에 .NET 4.0이 설치되어 있습니다. 나는 당연히 내 NETFrameworkVersion 변수가 ".NET 4.0"을 보유 할 것을 기대합니다. 그렇지 않습니다. 그것은 ".NET 버전을 알 수 없음"을 보유합니다.
제 질문은 왜 NET_4_0이 정의되지 않았습니까? 명명 규칙이 변경 되었습니까? 버전> 3.5에서 .NET 프레임 워크 빌드 버전을 확인하는 몇 가지 간단한 다른 방법이 있습니까?
NET_2_0, NET_3_5 등의 정수는 어디에서 왔습니까? Mono docs에서는 많은 참고 문헌을 찾을 수 있지만 microsoft.com에서는 아무 것도 없습니다. –
Tom, csproj 파일을 검사하여 표준 Microsoft 프로그램이 아닌 다른 포함 또는 대상이 있는지 확인 했습니까? 이 프로젝트에 포함 된 사용자 정의 빌드 기능 일 수 있습니다. –