ZERO_CHECK should fail the build
I use cmake to generate VS2017 projects, so this issue may or may not be applicable to other generated projects, I don't know.
In the VS solution generated by Cmake, there is a project named ZERO_CHECK. It is a dependency of every other project, and it's point is to check for changes and to regenerate the project/solution files if needed. The problem is, when running a build on the project I am actually using (be it ALL_BUILD or some other one), it in turn "builds" ZERO_CHECK since it is a dependency. If it does detect changes, it will regenerate the solution/projects, but then the build continues. Only after the build finishes, does VS pop up a message that the solution/project has changed and needs to be reloaded. It is not clear to me if the build that just took place used the old or new project files, but I suspect that it is the old ones, and in either case it is a very confusing scenario. I always just end up rebuilding in this case, immediately after having just built.
The simplest solution, in my opinion, would be for ZERO_CHECK to "fail" it's "build" if it had to regenerate anything. That way, all dependent projects will not build as their dependency failed. Then VS would immediately pop up the message about reloading the solution before needlessly building the old one.