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

C# - 현재 빌드에 적용 중인 컴파일러 버전 확인 방법 (#error version)

아래의 글을 통해 재미있는 것을 알게 되었습니다. ^^

Getting Roslyn (C# compiler) and Language
; https://www.meziantou.net/getting-roslyn-csharp-compiler-and-language-versions.htm

간혹 테스트 중에 현재 소스 코드를 컴파일하는 Rolsyn 버전이 궁금할 때가 있는데요, 바로 이럴 때 소스 코드에 "#error version"을 넣어주면 됩니다.

#error version

// ... rest of the file ...

#error 지시문이기 때문에 기본적으로 컴파일 에러가 발생하는데, 이때 오류 메시지에 현재 컴파일러의 버전과 프로젝트에 설정된 언어 버전을 함께 출력해 줍니다. 예를 들어, 아래는 제가 가진 비주얼 스튜디오 정식 버전과 preview 버전에서의 오류 메시지를 보여줍니다.

[Visual Studio 2022 17.14.13 + <LangVersion>preview</LangVersion> 환경]
error CS1029: #error: 'version'
error CS8304: Compiler version: '4.14.0-3.25412.6 (c167adef)'. Language version: preview.

[Visual Studio 2022 17.14.13 Preview 1.0 + <LangVersion>preview</LangVersion> 환경]
error CS1029: #error: 'version'
error CS8304: Compiler version: '5.0.0-2.25380.108 (30000d88)'. Language version: preview.

첫 번째 CS1029는 "#error" 지시자에 대한 오류이고, 두 번째 CS8304가 바로 컴파일러 버전과 csproj의 LangVersion 설정을 알려주는 메시지입니다.




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







[최초 등록일: ]
[최종 수정일: 8/25/2025]

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

비밀번호

댓글 작성자
 




... 196  [197]  198  199  200  201 
NoWriterDateCnt.TitleFile(s)
115정성태3/13/200522640VS.NET IDE: 25. [IIS 서버] ODBC 로그 남기기 [1]
195정성태12/21/200521811    답변글 VC++: 25.1. ODBC 로그를 못 남길 때의 오류 화면
113정성태3/13/200522739VS.NET IDE: 24. [VPC] 타이머 동기화 기능 제거
110정성태11/14/200521473.NET Framework: 28. VS.NET 2005 / SQL Server 2005 베타 버전 재설치 또는 업그레이드 [1]
111정성태3/7/200520090    답변글 VS.NET IDE: 28.1. [추가] SQL 2005 / VS.NET 2005 2005-02 CTP 버전이 올라왔네요. [1]
112정성태11/14/200521486        답변글 VS.NET IDE: 28.2. [추가] VS.NET 2005 2005-02 CTP 버전에서 달라진 점 ( VC++ )
127정성태3/29/200519445        답변글 VS.NET IDE: 28.4. [추가] SQL 2005 2005-02 CTP 버전에서 달라진 점
123정성태3/25/200523515    답변글 .NET Framework: 28.3. Uninstalling software without using Add Remove Programs...
108정성태3/4/200522793.NET Framework: 27. 시스템 이벤트 로그에 쌓이는 {00020906-0000-0000-C000-000000000046} 보안에러
107정성태3/1/200522935COM 개체 관련: 15. COM: Control 유형인 경우, IObjectWithSite 를 구현해도 SetSite/GetSite 가 호출이 안됨
106정성태2/28/200522397COM 개체 관련: 14. 탐색기 "처럼" 파일 열기
105정성태2/28/200521217.NET Framework: 26. VS.NET 2005 : 설치 프로젝트 - .NET Framework 설치 강제화
139정성태11/14/200519450    답변글 .NET Framework: 26.1. ^^ 역시, 배려가 되어 있네요. 제가 못 찾은 것이었습니다.
104정성태2/27/200522289VS.NET IDE: 23. MSI 설치 중에 GetLocalTime / GetSystemTime API 사용
132정성태3/30/200521862    답변글 VS.NET IDE: 23.1. [추가]: MSI 설치 동작 원리
102정성태2/16/200524876.NET Framework: 25. Verify that you are a member of the 'Debugger Users' group on the server. [2]
101정성태2/15/200522765.NET Framework: 24. WMI Win32_NTLogEvent 관리 이벤트를 Windows 2000 에서는 "Access Denied" 가 발생하는 문제파일 다운로드1
100정성태2/15/200528998VS.NET IDE: 22. 방화벽 환경에서의 WMI 연결을 위한 포트 설정 [2]
99정성태2/15/200526937COM 개체 관련: 13. 비동기 Drag & Drop 구현 : IAsyncOperation
103정성태2/23/200522941    답변글 COM 개체 관련: 13.1. [관련 자료] 그외 Drag & Drop 링크파일 다운로드1
97정성태2/14/200525826VS.NET IDE: 21. 설치된 Platform SDK 버전확인 방법
96정성태2/14/200527664기타: 9. http://www.google.com/webhp?complete=1&hl=en 검색에 관해서.
95정성태2/14/200537230VS.NET IDE: 20. Win32 특권 정리 [1]
94정성태1/29/200528291VC++: 13. VS.NET 2005 VC++ 컴파일러 에러 : cannot instantiate abstract class
93정성태1/29/200524044VS.NET IDE: 19. 혹시 VS.NET 2005 Beta2(2004/12 CTP Team System 버전)이 다운이 자주 되나요? [2]
92정성태1/29/200522587.NET Framework: 23. Unmanaged 환경에서 Managed DLL에 정의된 메서드 호출 시 오류 확인하는 방법
... 196  [197]  198  199  200  201