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。