컴파일러가 기본적으로 다른 대상 프레임 워크에 다른 C # 언어 버전을 사용하기 때문일 수 있습니다.
기본 C # 언어를 무시하려면 프로젝트 파일에 추가하십시오 (문제가 제안 된대로).
<PropertyGroup>
<LangVersion>8.0</LangVersion>
</PropertyGroup>
또는:
<PropertyGroup>
<LangVersion>latest</LangVersion>
</PropertyGroup>
참조 버전 C # 언어 다른 대상 프레임 워크와 방법을 수동으로 C # 언어 버전을 선택하는 방법에 대한 기본 C # 언어 버전을.
스택 오버플로 응답 참조 C # 8은 .NET Framework를 지원합니까? 이 주제에 대한 자세한 정보.
다음은 C # 언어 버전 관리 기사의 일부입니다 .
C # 언어 버전 관리
최신 C # 컴파일러는 프로젝트의 대상 프레임 워크를 기반으로 기본 언어 버전을 결정합니다. C # 언어에는 모든 .NET 구현에서 사용할 수없는 형식 또는 런타임 구성 요소에 의존하는 기능이있을 수 있기 때문입니다. 또한 프로젝트의 대상이 무엇이든 기본적으로 가장 높은 언어 버전을 얻을 수 있습니다.
이 문서의 규칙은 Visual Studio 2019 또는 .NET Core 3.0 SDK와 함께 제공되는 컴파일러에 적용됩니다. Visual Studio 2017 또는 이전 .NET Core SDK 버전의 일부인 C # 컴파일러는 기본적으로 C # 7.0을 대상으로합니다.
기본값
컴파일러는 다음 규칙에 따라 기본값을 결정합니다.
--------------------------------------------------------
Target framework | version | C# language version default
--------------------------------------------------------
.NET Core | 3.x | C# 8.0
.NET Core | 2.x | C# 7.3
.NET Standard | 2.1 | C# 8.0
.NET Standard | 2.0 | C# 7.3
.NET Standard | 1.x | C# 7.3
.NET Framework | all | C# 7.3
--------------------------------------------------------
기본값 무시
C # 버전을 명시 적으로 지정해야하는 경우 여러 가지 방법으로 지정할 수 있습니다.
- 프로젝트 파일을 수동으로 편집하십시오.
- 서브 디렉토리에서 여러 프로젝트의 언어 버전을 설정하십시오.
- -langversion 컴파일러 옵션을 구성하십시오.
프로젝트 파일 편집
프로젝트 파일에서 언어 버전을 설정할 수 있습니다. 예를 들어, 미리보기 기능에 명시 적으로 액세스하려면 다음과 같은 요소를 추가하십시오.
<PropertyGroup>
<LangVersion>preview</LangVersion>
</PropertyGroup>
이 값 preview
은 컴파일러에서 지원하는 최신 미리보기 C # 언어 버전을 사용합니다.
여러 프로젝트 구성
여러 프로젝트를 구성하기 위해 요소 가 포함 된 Directory.Build.props 파일을 만들 수 있습니다 <LangVersion>
. 일반적으로 솔루션 디렉토리에서 수행합니다. 솔루션 디렉토리 의 Directory.Build.props 파일에 다음을 추가하십시오 .
<Project>
<PropertyGroup>
<LangVersion>preview</LangVersion>
</PropertyGroup>
</Project>
이제 해당 파일을 포함하는 디렉토리의 모든 하위 디렉토리에 빌드가 미리보기 C # 버전을 사용합니다. 자세한 정보는 빌드 사용자 정의 기사를 참조하십시오 .