Whenever you build in Visual Studio, when the compliation hits an error it cannot resolve it continues to compile. Now, this behaviour is pointless, the compiler KNOWS it's going to fail because its had a hard error. An error in compilation means that some part of the whole has failed. This, in all situations that matter, will mean the entire build failed.
Now, there is some small advantage in continuing anyway on an error, the reasons to continue are:
- To assertain the extent of the error (is this just an isolated error or is something seriously out of wack, like wrong toolset).
- Collect ALL the known errors ahead of time so they can be worked on as a batch instead of individually
- Firstly, at the point you hit an error your 100% going to have to resolve THAT error in the end anyway. Your not going to be able to look at any subsequent errors before hand realistically.
- Secondly, every error after the first one is increasingly unlikley to be a real error and is more likely to be the result of the first not being resolved. This is of course not 100% of the time, though usually even if you need to fix all the errors the first error's context is enough to figure out the rest.
Now, bring in distributed compilation in the form of TFS and other solutions. Everytime, as a developer, I finish my work locally I need to push it to a build server to make it production ready. Now, the build server hits an error in the first 30 seconds, so I know my build has failed. YET, it still continues to process 20 minutes of bullshit work!
Now, Microsoft have an error limit in their code, its set to 100 compile errors. The problem is, usually when submitting a build to a build server their are one to five errors, also typically their are THOUSANDS of lines of code.
In 10+ years, people have queried Microsoft about allowing this build error limit to be configured, Microsoft ignored that. Now, with the drive through of open source (and underpaid software developers) people have made their own solutions to this issue. The problem is Microsoft are deliberately not solving it because millions of customers delayed by long build encourages more investment in software and hardware to try to mitigate this simple problem.