I had copilot run some builds locally and analyze the binlogs.
Here were its suggestions. Recording just so this isn't lost. I think we could do more to limit what a local build does whether it's through filtering, limiting the build, not building the archives, etc.
#53607 came out of this.
| Fix |
Estimated Impact |
Effort |
| Build with /p:TargetFramework=net11.0 for single-TFM inner loop |
Eliminates DispatchToInnerBuilds (9.6 min cumulative saved) |
None — just a flag |
| Use filtered solutions (cli.slnf, etc.) for focused work |
Build only 9 projects instead of 184 |
None — already available |
| Skip code coverage (MsCoverageReferencedPathMaps) locally |
~5 min cumulative saved |
1 property |
| After initial build, use /p:BuildProjectReferences=false |
Eliminates 42 min cumulative RPR walk |
Flag + docs |
| Investigate MSBuild graph build (/graph) |
Fundamentally faster project traversal |
POC needed |
| Add Inputs/Outputs to redist layout targets |
3.8 min → seconds for redist on no-op |
~1 day |
I had copilot run some builds locally and analyze the binlogs.
Here were its suggestions. Recording just so this isn't lost. I think we could do more to limit what a local build does whether it's through filtering, limiting the build, not building the archives, etc.
#53607 came out of this.