In the current multi-process MSBuild setup, the devenv process hosts the MSBuild main node, while the majority of the build work is delegated to out-of-process MSBuild nodes. However, with the upcoming multi-threaded MSBuild model, all project builds will execute within the main node—i.e., inside the devenv process. This shift could potentially be problematic, because of possible crashes or for very large builds.
We need to design a mechanism that allows builds to run in a multi-threaded fashion outside of the devenv process. We should also allow Visual Studio to choose between single-process (multi-threaded) and multi-process execution modes.