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

(시리즈 글이 2개 있습니다.)
개발 환경 구성: 460. .NET Core 환경에서 (프로젝트가 아닌) C# 코드 파일을 입력으로 컴파일하는 방법
; https://www.sysnet.pe.kr/2/0/12034

.NET Framework: 2034. .NET Core/5+ 환경에서 (프로젝트가 아닌) C# 코드 파일을 입력으로 컴파일하는 방법 - 두 번째 이야기
; https://www.sysnet.pe.kr/2/0/13105




(2021-06-27 업데이트) .NET Core 2.2.2 SDK부터 함께 배포되는 Roslyn 컴파일러에는 이제 더 이상 csc.exe가 제공되지 않으며 csc.dll로만 존재해 직접적으로 수행할 수 없게 되었습니다.




.NET Core 환경에서 (프로젝트가 아닌) C# 코드 파일을 입력으로 컴파일하는 방법

(4.x 기준의) .NET Framework이 설치된 경우에는 다음의 경로에,

32비트: C:\Windows\Microsoft.NET\Framework\v4.0.30319
64비트: C:\Windows\Microsoft.NET\Framework64\v4.0.30319

고정적으로 csc.exe가 있어 다음과 같이 쉽게(?) 빌드할 수 있었습니다.

c:\temp> "C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc" program.cs

그런데, 닷넷 코어 환경에서는 경로가 잘 알려진 "dotnet.exe"가 기본적으로 프로젝트 기반으로 빌드를 담당하면서 내부적으로는 csc.exe가 감춰져 있는 형태입니다. 따라서 개별 파일로 빌드하려면 직접 csc.exe를 찾아내야 하는데요. 이럴 때 where.exe를 이용해 다음과 같이 csc.exe가 있는 폴더로 이동할 수 있습니다.

C:\temp> where dotnet
C:\Program Files\dotnet\dotnet.exe
C:\Program Files (x86)\dotnet\dotnet.exe

C:\temp> cd "C:\Program Files\dotnet\sdk\3.0.100\Roslyn\bincore"

C:\Program Files\dotnet\sdk\3.0.100\Roslyn\bincore> csc
Microsoft (R) Visual C# Compiler version 3.3.1-beta3-19461-02 (2fd12c21)
Copyright (C) Microsoft Corporation. All rights reserved.

warning CS2008: No source files specified.
error CS1562: Outputs without source must have the /out option specified

역시나, 저렇게 Roslyn 폴더를 찾아가기보다는... "dotnet build"가 더 선호될 수밖에 없겠습니다. ^^




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







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

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

비밀번호

댓글 작성자
 



2019-10-12 11시19분
Is it possible to compile a single C# code file with the .NET Core Roslyn compiler?
; https://stackoverflow.com/questions/46065777/is-it-possible-to-compile-a-single-c-sharp-code-file-with-the-net-core-roslyn-c
정성태

1  [2]  3  4  5  6  7  8  9  10  11  12  13  14  15  ...
NoWriterDateCnt.TitleFile(s)
13989정성태8/8/20253263닷넷: 2352. C# - Windows S-mode 환경인지 체크하는 방법파일 다운로드1
13988정성태8/8/20253234오류 유형: 974. 비주얼 스튜디오 업데이트 시 잠김 파일 경고 - Visual Studio Standard Collector Service 150 (VSStandardCollectorService150)
13987정성태8/7/20252783닷넷: 2351. C# 14 - (6) event와 생성자에도 partial 메서드 적용파일 다운로드1
13986정성태8/6/20252353닷넷: 2350. C# 14 - (5) 람다 매개 변수에 접근자가 있는 경우에도 타입 생략 가능파일 다운로드1
13985정성태8/6/20252996오류 유형: 973. "wsl --install" 명령어 수행 시 "The server name or address could not be resolved"
13984정성태8/6/20252780Windows: 282. 윈도우 운영체제에 추가된 ssh 서버(Win32-OpenSSH)
13983정성태8/4/20252684오류 유형: 972. Microsoft.Data.SqlClient 6.1.0 버전부터 .NET 8 이상만 지원
13982정성태8/2/20253001개발 환경 구성: 753. CentOS 7 컨테이너 내에서 openssh 서버 호스팅
13981정성태8/1/20252543오류 유형: 971. CentOS 7에서 yum 사용 시 "Could not resolve host: mirrorlist.centos.org; Unknown error"
13980정성태7/31/20252647Linux: 119. eBPF - BPF_PROG_TYPE_CGROUP_SOCK 유형에서 정상 동작하지 않는 BPF_CORE_READ (2)
13979정성태7/30/20253139Linux: 118. eBPF - BPF_PROG_TYPE_CGROUP_SOCK 유형에서 정상 동작하지 않는 BPF_CORE_READ
13978정성태7/29/20252593오류 유형: 970. 파일 복사 시 "Data error (cyclic redundancy check). (0x80070017)" 에러
13977정성태7/28/20253061닷넷: 2349. C# 14 - (4) 문자열 리터럴을 utf-8 인코딩으로 저장파일 다운로드1
13976정성태7/25/20252940닷넷: 2348. C# - 카카오 카나나 모델 + Microsoft.ML.OnnxRuntimeGenAI 예제파일 다운로드1
13975정성태7/23/20252821닷넷: 2347. C# 14 - (3) 형식 인자가 없는 제네릭 타입의 nameof 지원파일 다운로드1
13974정성태7/22/20253010닷넷: 2346. C# 14 - (2) Span 타입과 배열 간의 암시적 형변환파일 다운로드1
13973정성태7/21/20253148닷넷: 2345. C# - 배열 및 Span의 공변성파일 다운로드1
13972정성태7/21/20252811닷넷: 2344. C#의 Identity conversion 의미파일 다운로드1
13971정성태7/17/20253041닷넷: 2343. C# 14 - (1) 속성 구문에서 문맥 키워드로 추가되는 field 예약어파일 다운로드1
13970정성태7/17/20252746닷넷: 2342. C# 14 - (취소된 글)
13969정성태7/17/20252707닷넷: 2341. snap으로 설치한 .NET 리눅스 실행 환경
13968정성태7/16/20252694오류 유형: 969. lddtree - TypeError: 'type' object is not subscriptable
13967정성태7/16/20253491오류 유형: 968. snap으로 설치한 "dotnet run" 실행 시 "undefined symbol: _dl_audit_symbind_alt, version GLIBC_PRIVATE" 오류
13966정성태7/15/20254089디버깅 기술: 223. WinDbg - .kframes 명령어
13965정성태7/11/20253237오류 유형: 967. 디버깅 모드로 실행 시 "Could not find file 'C:\Program Files\IIS Express\Oracle.DataAccess.Common.Configuration.Section.xsd'" 예외
13964정성태7/10/20254568닷넷: 2340. C# - Win32 Multimedia Timer 주기파일 다운로드1
1  [2]  3  4  5  6  7  8  9  10  11  12  13  14  15  ...