Microsoft MVP성태의 닷넷 이야기
글쓴 사람
정성태 (seongtaejeong at gmail.com)
홈페이지
첨부 파일
 

msbuild - error CS1617: Invalid option '12.0' for /langversion. Use '/langversion:?' to list supported values.

C# 프로젝트를 빌드하는데 이런 오류가 발생한다면?

CSC : error CS1617: Invalid option '12.0' for /langversion. Use '/langversion:?' to list supported values. [C:\temp\ConsoleApp1.csproj]
  CompilerServer: server - server processed compilation - 4b32bfbf-3ffc-4670-85c2-77b1e6241db3
Done Building Project "C:\temp\ConsoleApp1.csproj" (Rebuild target(s)) -- FAILED.

Build FAILED.

"C:\temp\ConsoleApp1.csproj" (Rebuild target) (1) ->
(CoreCompile target) ->
  CSC : error CS1617: Invalid option '12.0' for /langversion. Use '/langversion:?' to list supported values. [C:\temp\ConsoleApp1.csproj]

오류 메시지에 따라 실제로 지원되는 버전을 확인해 보면 메시지에 나온 버전(위의 경우 12.0)이 없습니다.

C:\temp\ConsoleApp1> csc /langversion:?
Supported language versions:
default
1
...[생략]...
9.0
10.0
11.0 (default)
latestmajor
preview
latest

csc가 지원하는 C# 버전이란, 사실 csc.exe C# 컴파일러 스스로가 어느 정도의 최신이냐에 따라 결정됩니다. 즉, 위의 경우에는 현재 실행 중인 csc.exe가 C# 11까지만 지원하는 바이너리 빌드에 해당하는 것입니다.

C:\temp\ConsoleApp1> where csc
C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin\Roslyn\csc.exe
C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe

C:\temp\ConsoleApp1> csc /?
Microsoft (R) Visual C# Compiler version 4.5.2-3.23171.7 (d17f7415)
Copyright (C) Microsoft Corporation. All rights reserved.
...[생략]...

따라서 위와 같은 경우에는 Visual Studio를 업데이트하면 자연스럽게 C# 버전도 올라가게 됩니다. (2024-12-11 기준으로 비주얼 스튜디오를 최신 버전으로 업데이트하면 4.12.0-3.24572.7 버전의 csc.exe가 설치됩니다.)




참고로, .NET SDK를 설치하면 그 안에도 최신 버전의 C# 컴파일러가 있긴 합니다.

C:\temp\ConsoleApp1> dotnet --list-sdks
5.0.405 [C:\Program Files\dotnet\sdk]
5.0.416 [C:\Program Files\dotnet\sdk]
6.0.200 [C:\Program Files\dotnet\sdk]
7.0.102 [C:\Program Files\dotnet\sdk]
7.0.203 [C:\Program Files\dotnet\sdk]
8.0.404 [C:\Program Files\dotnet\sdk]

그래서, "dotnet build ..."를 하면 위와 같은 상황에서는 .NET 8.0이 설치한 12 버전의 C# 컴파일러로 빌드가 됩니다. 단지, 이런 경우에는 Visual Studio의 msbuild가 실행한 csc.exe 유형이 아니라, 모든 닷넷 프로그램과 마찬가지로 "dotnet csc.dll ..."과 같은 형식으로 실행되는 csc.dll이 대행을 합니다.




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]







[최초 등록일: ]
[최종 수정일: 12/13/2024]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




... 196  [197]  198  199  200  201 
NoWriterDateCnt.TitleFile(s)
107정성태3/1/200522226COM 개체 관련: 15. COM: Control 유형인 경우, IObjectWithSite 를 구현해도 SetSite/GetSite 가 호출이 안됨
106정성태2/28/200521729COM 개체 관련: 14. 탐색기 "처럼" 파일 열기
105정성태2/28/200520583.NET Framework: 26. VS.NET 2005 : 설치 프로젝트 - .NET Framework 설치 강제화
139정성태11/14/200518930    답변글 .NET Framework: 26.1. ^^ 역시, 배려가 되어 있네요. 제가 못 찾은 것이었습니다.
104정성태2/27/200521675VS.NET IDE: 23. MSI 설치 중에 GetLocalTime / GetSystemTime API 사용
132정성태3/30/200521194    답변글 VS.NET IDE: 23.1. [추가]: MSI 설치 동작 원리
102정성태2/16/200524193.NET Framework: 25. Verify that you are a member of the 'Debugger Users' group on the server. [2]
101정성태2/15/200522119.NET Framework: 24. WMI Win32_NTLogEvent 관리 이벤트를 Windows 2000 에서는 "Access Denied" 가 발생하는 문제파일 다운로드1
100정성태2/15/200528333VS.NET IDE: 22. 방화벽 환경에서의 WMI 연결을 위한 포트 설정 [2]
99정성태2/15/200526392COM 개체 관련: 13. 비동기 Drag & Drop 구현 : IAsyncOperation
103정성태2/23/200522336    답변글 COM 개체 관련: 13.1. [관련 자료] 그외 Drag & Drop 링크파일 다운로드1
97정성태2/14/200525093VS.NET IDE: 21. 설치된 Platform SDK 버전확인 방법
96정성태2/14/200527034기타: 9. http://www.google.com/webhp?complete=1&hl=en 검색에 관해서.
95정성태2/14/200536622VS.NET IDE: 20. Win32 특권 정리 [1]
94정성태1/29/200527662VC++: 13. VS.NET 2005 VC++ 컴파일러 에러 : cannot instantiate abstract class
93정성태1/29/200523394VS.NET IDE: 19. 혹시 VS.NET 2005 Beta2(2004/12 CTP Team System 버전)이 다운이 자주 되나요? [2]
92정성태1/29/200521935.NET Framework: 23. Unmanaged 환경에서 Managed DLL에 정의된 메서드 호출 시 오류 확인하는 방법
91정성태11/14/200522593VC++: 12. VS.NET 2005 VC++ Debug: Expression: ( (state != ST_INVALID ) )
90정성태1/27/200523762.NET Framework: 22. Debug: The underlying connection was closed: Unable to connect to the remote server.
89정성태1/26/200528171VC++: 11. Delay Loaded DLL
87정성태1/23/200521804VS.NET IDE: 18. VS.NET 2005 Beta 1 - VC++ 프로젝트에서 Connection Point 구현시 버그
88정성태1/23/200521182    답변글 VS.NET IDE: 18.1. VS.NET 2003 : VC++ 프로젝트에서 Connection Point 추가시에도 버그
86정성태1/23/200527252.NET Framework: 21. Code Snippet - Enum과 관련된 다양한 형변환 [1]
85정성태1/23/200525534스크립트: 4. Windows 2003에서 BHO(Browser Helper Objects) 동작 안하는 현상 [1]
83정성태1/18/200530926.NET Framework: 20. System.AccessViolationException 예외가 발생한 한 예.
82정성태1/3/200524262VS.NET IDE: 17. Windows 운영 - 특정 사용자 또는 그룹에 대해서 파일 공유 접근 금지
... 196  [197]  198  199  200  201