Background
ResolveAssemblyReferences (RAR) remains to be one of the most expensive targets in incremental builds. It runs on each build, by design, and while there have been several improvements in the past, we believe that it can be optimized further. For example, thanks to the MSBuild server feature, we can look at the target and the underlying task through the prism of a long-running process and investigate the potential use of file watchers to catch dependent file updates. It is also likely that many RAR features are no longer relevant for building modern .NET apps and can be by default disabled, yielding a measurable perf boost.
Tasks
Justification
- Faster incremental build leading to faster inner loop.
- Particularly relevant to command line where incremental builds are not optimized at project level.
- Alings to OKR "Generate 8 1P 'perf gains/COGS reduction' endorsements from moving to .NET 5+"
Background
ResolveAssemblyReferences (RAR) remains to be one of the most expensive targets in incremental builds. It runs on each build, by design, and while there have been several improvements in the past, we believe that it can be optimized further. For example, thanks to the MSBuild server feature, we can look at the target and the underlying task through the prism of a long-running process and investigate the potential use of file watchers to catch dependent file updates. It is also likely that many RAR features are no longer relevant for building modern .NET apps and can be by default disabled, yielding a measurable perf boost.
Tasks
Justification