Behind the scenes of dotnet run app.cs

dotnet run app.cs 스타일의 코드가 내부적으로 어떻게 "가상 프로젝트"를 만들고 빌드 환경과 빌드 결과물 캐시를 수행하는지 상세하게 정리한 아티클이 있어 공유합니다.

#: 으로 시작하는 새로운 전처리기 코드는 전반적으로 MSBuild 프로젝트를 제어하기 위한 내용이 주된 내용이다보니, 나중에는 전통적인 csproj 파일 환경에서도 C++에서 그랬던 것처럼 코드 수준에서 프로젝트를 제어하기 위한 매크로처럼 쓰이는 확장도 가능해지지 않을까 하는 상상도 해봅니다. (예: csproj 파일이 아니라 C# 파일에서 Unsafe 빌드 옵션 켜기 같은?)

여담입니다만, 지금 수준의 기능이라면 현재는 포함되어있지 않은 VB.NET이나 F#에 대한 지원도 그렇게 어렵지 않게 추가할 수 있지 않을까 하는 생각도 드네요. :thinking:

8개의 좋아요

그냥 cs 파일 자체를 프로젝트로 쓸 수 있는지 dotnet build Program.cs 이런 것도 되더라고요.

1개의 좋아요

간단한 라이브러리용으로 dotnet pack Program.cs 도 되게되면 좋겟네요 ㅋㅋ

4개의 좋아요