Workload 允許非 BCL 核心組件(如 Android / iOS / WebAssembly / MAUI)以宣告式清單 (manifest) 提供。流程:
dotnet workload search:列出版 manifest 資訊dotnet workload install wasm-tools:下載對應 pack (nuget nupkg)metadata/workloads/ 註冊關鍵碼:src/WorkloadManifestReader/、src/Cli/dotnet/commands/dotnet-workload-*。
| 功能 | 入口屬性 | 主要功能 | 說明 |
|---|---|---|---|
| Trim | PublishTrimmed=true |
ILLink | 移除未使用 IL,需保留反射根(DynamicDependency / rd.xml) |
| Native AOT | PublishAot=true |
crossgen2 + runtime pack | 產生原生可執行,減少啟動與記憶體 |
| ReadyToRun | PublishReadyToRun=true |
crossgen2 R2R | 預先編譯常用方法 IL->Native |
| PGO | TieredPGO / DynamicPgo |
CLR JIT / profile data | 10 版起更廣泛預設啟用(視平台) |
整合節點:Targets 準備參數 -> Task 呼叫工具 -> 更新 deps 清單與最終輸出。
| 變數 | 作用 |
|---|---|
DOTNET_CLI_UI_LANGUAGE |
強制 CLI 語系 |
DOTNET_CLI_TELEMETRY_OPTOUT |
關閉遙測 |
DOTNET_MSBUILD_SDK_RESOLVER_SDKS_DIR |
覆寫 SDK 搜尋路徑 |
DOTNET_SKIP_FIRST_TIME_EXPERIENCE |
跳過初次使用快取/歡迎行為 |
DOTNET_NOLOGO |
隱藏歡迎標頭 |
DOTNET_ROLL_FORWARD |
SDK / Runtime roll-forward 策略 |
DOTNET_CLI_DISABLE_FILE_BASED_APP_ARTIFACTS_AUTOMATIC_CLEANUP |
停用單檔模式自動清理 |
NUGET_PACKAGES |
NuGet 全域快取位置 |
###流程
src/Cli/dotnet/Program.cs 進入,看如何組裝命令與解析參數。RunCommand / BuildCommand -> 學會如何組裝 MSBuild Invocation。src/Tasks/ 看一個具體 Task(例如 GenerateDepsFile)。artifacts/bin/Microsoft.NET.Build.Tasks/<Configuration>/ 觀察編譯輸出。WorkloadManifestReader 與 SdkResolver 判斷流程。Sdk.targets / Sdk.props 全貌,理解 Lifecycle。