I'm finding it difficult to understand Microsoft's motive behind building conceptual "projects" like this. They ship MSBuild.exe and NMAKE.exe together with a Visual Studio 2015 install but they both appear to serve the same purpose.
If they are both (in a practical sense) equivalent but using different formats, I won't bother learning how to write both. If they both have their own purposes, I might reconsider.
The following text is just my current theory on the whole thing... but I asked this question because there could be people here with experience customizing these files unlike myself...
It seems like MSBuild is made for those that depend heavily on the Visual Studio environment (.sln files) for compilation. And upon reading a little bit about it, I asked myself: Couldn't compilation of dependencies be separated by different projects allowing for partial compilation when using MSBuild? That would involve having multiple projects in a solution and then building the solution to build the entire product.
As you can see... I'm trying to understand the philosophy of MSBuild and why it's needed in the build process. At the moment, I'm starting to wonder if it's actually based on NMAKE and compiles down into NMAKE commands. That would make a whole lot of sense because I cannot see why anyone would need both in the same build process.