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개의 μ’‹μ•„μš”