성태의 닷넷 이야기
홈 주인
모아 놓은 자료
프로그래밍
질문/답변
사용자 관리
사용자
메뉴
아티클
외부 아티클
유용한 코드
온라인 기능
MathJax 입력기
최근 덧글
[정성태] https://www.c-sharpcorner.com/artic...
[정성태] How can I detect if one of my helpe...
[정성태] 32비트 값을 64비트 레지스터에 넣을 때, 상위 32비트에 대...
[정성태] 본문에서 상위 8바이트의 16비트가 사용되지 않는 것을 볼 수 ...
[정성태] 한 번도 궁금한 적이 없었는데, If I mark my t...
[정성태] 그냥 RSS Reader 기능과 약간의 UI 편의성 때문에 사용...
[이종효] 오래된 소프트웨어는 보안 위협이 되기도 합니다. 혹시 어떤 기능...
[정성태] @Keystroke IEEE의 문서를 소개해 주시다니... +_...
[손민수 (Keystroke)] 괜히 듀얼채널 구성할 때 한번에 같은 제품 사라고 하는 것이 아...
[정성태] 전각(Full-width)/반각(Half-width) 기능을 토...
글쓰기
제목
이름
암호
전자우편
HTML
홈페이지
유형
제니퍼 .NET
닷넷
COM 개체 관련
스크립트
VC++
VS.NET IDE
Windows
Team Foundation Server
디버깅 기술
오류 유형
개발 환경 구성
웹
기타
Linux
Java
DDK
Math
Phone
Graphics
사물인터넷
부모글 보이기/감추기
내용
<div style='display: inline'> <h1 style='font-family: Malgun Gothic, Consolas; font-size: 20pt; color: #006699; text-align: center; font-weight: bold'>msbuild - error CS1617: Invalid option '12.0' for /langversion. Use '/langversion:?' to list supported values.</h1> <p> C# 프로젝트를 빌드하는데 이런 오류가 발생한다면?<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > 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] </pre> <br /> 오류 메시지에 따라 실제로 지원되는 버전을 확인해 보면 메시지에 나온 버전(위의 경우 12.0)이 없습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > C:\temp\ConsoleApp1> <span style='color: blue; font-weight: bold'>csc /langversion:?</span> Supported language versions: default 1 ...[생략]... 9.0 10.0 11.0 (default) latestmajor preview latest </pre> <br /> csc가 지원하는 C# 버전이란, 사실 csc.exe C# 컴파일러 스스로가 어느 정도의 최신이냐에 따라 결정됩니다. 즉, 위의 경우에는 <a target='tab' href='https://www.sysnet.pe.kr/2/0/12022#csc'>현재 실행 중인 csc.exe</a>가 C# 11까지만 지원하는 바이너리 빌드에 해당하는 것입니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > C:\temp\ConsoleApp1> <span style='color: blue; font-weight: bold'>where csc</span> 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> <span style='color: blue; font-weight: bold'>csc /?</span> Microsoft (R) Visual C# Compiler version <span style='color: blue; font-weight: bold'>4.5.2-3.23171.7</span> (d17f7415) Copyright (C) Microsoft Corporation. All rights reserved. ...[생략]... </pre> <br /> 따라서 위와 같은 경우에는 Visual Studio를 업데이트하면 자연스럽게 C# 버전도 올라가게 됩니다. (2024-12-11 기준으로 비주얼 스튜디오를 최신 버전으로 업데이트하면 4.12.0-3.24572.7 버전의 csc.exe가 설치됩니다.)<br /> <br /> <hr style='width: 50%' /><br /> <br /> 참고로, .NET SDK를 설치하면 그 안에도 최신 버전의 C# 컴파일러가 있긴 합니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > C:\temp\ConsoleApp1> <span style='color: blue; font-weight: bold'>dotnet --list-sdks</span> 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] <span style='color: blue; font-weight: bold'>8.0.404 [C:\Program Files\dotnet\sdk]</span> </pre> <br /> 그래서, "dotnet build ..."를 하면 위와 같은 상황에서는 .NET 8.0이 설치한 12 버전의 C# 컴파일러로 빌드가 됩니다. 단지, 이런 경우에는 Visual Studio의 msbuild가 실행한 csc.exe 유형이 아니라, 모든 닷넷 프로그램과 마찬가지로 <a target='tab' href='https://www.sysnet.pe.kr/2/0/13105'>"dotnet csc.dll ..."과 같은 형식으로 실행되는 csc.dll이 대행</a>을 합니다.<br /> </p><br /> </pre> <br /><hr /><span style='color: Maroon'>[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]</span> </div>
첨부파일
스팸 방지용 인증 번호
9169
(왼쪽의 숫자를 입력해야 합니다.)