dotnet run
深入傳統:
dotnet <App>.dll
或直接執行 apphost單檔模式 (dotnet run hello.cs
):
FileBasedAppContext
(Hash + Cache 目錄)#:package
、#:property
...)生成 In-memory 專案msbuild /t:Build
最小化流程你前面章節看到的「單 cs run 模式」就是這條快速路徑,其核心實作散布於:src/Cli/dotnet/commands/dotnet-run/
與專門的 FileBased utility 類別從 RunCommand.cs
追進去。
專案檔 <Project Sdk="Microsoft.NET.Sdk">
展開後(簡化):
Microsoft.NET.Sdk
├─ Sdk.props (設定預設屬性、TFM、LangVersion 推導)
├─ <你的專案>.csproj
└─ Sdk.targets (定義 Compile / Publish / Pack 等目標)
關鍵觀念:
Configuration=Debug
、TargetFramework=net10.0
)SdkResolver
決定實際 Sdk 路徑(支援多 SDK 並存)ResolvePackageAssets
讀取 project.assets.json
建立參考項PublishTrimmed
, PublishAot
, ReadyToRun
) 傳遞到對應 Target,最後驅動工具鏈 (illink
, crossgen2
)追 Code 路線:src/Tasks/Microsoft.NET.Build.Tasks/
-> 找 Task 對應的 .cs -> 搜尋其 MSBuild 名稱在 Sdk.targets
出現位置。