用途:在优化构建前先建立可对比的性能基线,再按系统化方法定位并改善构建耗时。
主要能力:测量三种场景——冷构建(清理 bin/obj 后全量构建)、热构建(改动少量文件后增量构建)、空操作构建(无改动重建,应近乎瞬时);记录优化前后对照表。提供 MSBuild 服务器(持久构建进程,减少 JIT 与程序集加载开销)、UseArtifactsOutput 产物输出布局(避免 bin/obj 冲突、便于 CI 缓存)、确定性构建(相同输入产生字节一致输出,利于缓存与可复现)、依赖图裁剪(移除冗余传递引用、ReferenceOutputAssembly=false、PrivateAssets=all、DisableTransitiveProjectReferences)、静态图构建 /graph、并行调优(-m、-m:4)、以及分离还原与构建、跳过不必要目标等快速优化手段。
必要用法示例:dotnet build /bl:cold-build.binlog -m;dotnet build-server status;dotnet build-server shutdown;dotnet build /graph /bl:graph-build.binlog;dotnet restore 后 dotnet build --no-restore -m。
适用场景:诊断慢构建、建立优化前后度量、大型多项目解决方案与 CI 构建调优。
限制:静态图构建要求所有 ProjectReference 可静态确定,否则报 MSB4260;/graph 对小型解决方案可能因图评估开销得不偿失;DisableTransitiveProjectReferences 需显式列出全部依赖,仅建议超大型仓库使用;RunAnalyzers=false 仅适合开发期,不应用于 CI。资料未提供具体收费、平台与效果数据。