LangVersion에 대한 'option' 옵션이 잘못되었습니다. 지원되는 값을 나열하려면 ?을 사용합니다.
이 오류는 LangVersion 명령줄 스위치 또는 프로젝트 설정을 사용하지만 유효한 언어 옵션을 지정하지 않는 경우 발생합니다. 이 오류를 해결하려면 명령줄 구문 또는 프로젝트 설정을 확인하고 나열된 옵션 중 하나로 변경합니다.
예를 들어 csc -langversion:ISO 를 사용하여 컴파일하면 CS1617 오류가 생성됩니다.
지원되는 언어 버전을 나열하는 방법
지원되는 언어 버전 목록을 보려면 빌드하기 전에 이 문서의 테이블을 참조하거나 프로젝트 파일에서 -langversion:?컴파일하거나 일시적으로 설정합니다 <LangVersion>?</LangVersion> .
참조 테이블 사용(권장)
지원되는 언어 버전을 확인하는 가장 신뢰할 수 있는 방법은 현재 지원되는 모든 언어 버전을 나열하는 이 문서의 끝에 있는 참조 테이블을 참조하는 것입니다.
C# 컴파일러를 직접 사용
-langversion:? C# 컴파일러에서 이 옵션을 사용합니다. .NET SDK 설치에서 csc.dll의 경로를 찾아야 합니다.
dotnet exec "/path/to/dotnet/sdk/version/Roslyn/bincore/csc.dll" -langversion:?
예를 들어 .NET 8 SDK가 있는 Linux의 경우:
dotnet exec "/usr/lib/dotnet/sdk/8.0.117/Roslyn/bincore/csc.dll" -langversion:?
정확한 경로는 운영 체제 및 .NET SDK 버전에 따라 달라집니다.
진단 출력과 함께 프로젝트 파일 사용(권장되지 않음)
프로젝트 파일에서 <LangVersion>?</LangVersion>를 일시적으로 설정하고, 진단 수준으로 빌드할 수 있습니다.
dotnet build -v diagnostic
출력에서 "지원되는 언어 버전:" 줄을 찾습니다.
경고
프로젝트 파일에 <LangVersion>?</LangVersion>를 설정하면 지원되는 버전을 표시한 후 빌드를 실패하게 합니다. 이는 컴파일러가 코드를 계속 컴파일하는 대신 버전을 나열한 후 종료하기 때문입니다. 목록을 본 후 이 설정을 제거합니다.
-langversion에 유효한 값
언어 버전의 유효한 값은 사용 중인 .NET 버전에 따라 다릅니다. 어떤 버전의 .NET에서 어떤 언어 버전을 사용할 수 있는지에 대한 자세한 내용은 언어 버전 규칙을 참조하세요. 최신 언어 버전을 사용하려고 시도하는 동안 이 오류가 표시되면 더 낮은 언어 버전으로 다운그레이드하거나 .NET SDK를 해당 언어 버전을 지원하는 버전으로 업데이트합니다.
다음 표에서는 -langversion에 대한 현재 유효한 값을 지정합니다.
| 값 | 의미 |
|---|---|
preview |
컴파일러가 최신 미리 보기 버전의 유효한 언어 구문을 모두 허용합니다. |
latest |
컴파일러가 최신 릴리스 버전(부 버전 포함)의 구문을 허용합니다. |
latestMajor또는 default |
컴파일러가 최신 릴리스 주 버전의 구문을 허용합니다. |
15.0 |
컴파일러는 C# 15 이하에 포함된 구문만 허용합니다. |
14.0 |
컴파일러는 C# 14 이하에 포함된 구문만 허용합니다. |
13.0 |
컴파일러는 C# 13 이하에 포함된 구문만 허용합니다. |
12.0 |
컴파일러는 C# 12 이하에 포함된 구문만 허용합니다. |
11.0 |
컴파일러는 C# 11 이하에 포함된 구문만 허용합니다. |
10.0 |
컴파일러는 C# 10 이하에 포함된 구문만 허용합니다. |
9.0 |
컴파일러는 C# 9 이하에 포함된 구문만 허용합니다. |
8.0 |
컴파일러는 C# 8.0 이하에 포함된 구문만 허용합니다. |
7.3 |
컴파일러는 C# 7.3 이하에 포함된 구문만 허용합니다. |
7.2 |
컴파일러는 C# 7.2 이하에 포함된 구문만 허용합니다. |
7.1 |
컴파일러는 C# 7.1 이하에 포함된 구문만 허용합니다. |
7 |
컴파일러는 C# 7.0 이하에 포함된 구문만 허용합니다. |
6 |
컴파일러는 C# 6.0 이하에 포함된 구문만 허용합니다. |
5 |
컴파일러는 C# 5.0 이하에 포함된 구문만 허용합니다. |
4 |
컴파일러는 C# 4.0 이하에 포함된 구문만 허용합니다. |
3 |
컴파일러는 C# 3.0 이하에 포함된 구문만 허용합니다. |
ISO-2또는 2 |
컴파일러는 ISO/IEC 23270:2006 C#(2.0)에 포함된 구문만 허용합니다. |
ISO-1또는 1 |
컴파일러는 ISO/IEC 23270:2003 C#(1.0/1.2)에 포함된 구문만 허용합니다. |
.NET