Let me offer my take on this question.
Although you certainly can simply use your .SLN file as your 'build process', the file itself really doesn't constitute a build process. The Solution file is really just a part of Visual Studio and is used for development. But Visual Studio is only a part of the build and release process. You can't rely on Solutions to manage your build, and Solutions certainly don't offer a scalable build situation.
The entire purpose of establishing a build process is to create reliable builds. That is to say, the build process is so reliable that no matter the build configuration, you will get a predictable build output. Every time, every machine. The result of a predictable and reliable build is that the test, deployment, and release process can then be highly automated, further reducing the risk of human error.
Establishing a build process requires an investment, but in certain cases, the investment is required. Here are some factors that favor an msbuild process:
- Your product has multiple teams (cross-functional or otherwise) who are working in the same team project
- Your organization has only one team project (should be the case for 99% of traditional shops, even those with 200+ developers)
- You have more than 20 projects that need to be built, some of which have dependencies on others and are maintained by different teams
- Your product incorporates multiple .NET technologies (C#, C++, VB, F#, ASP.NET, etc), or even non-.NET technologies (Grunt, node, npm, Java, etc)
- Your product has heavyweight dependencies or is built on top of a heavyweight platform. SharePoint, as an example
Let me give an example to expand on my last point. My current company does SharePoint development. SharePoint development at a minimum requires SharePoint foundation to be installed to perform builds on SharePoint projects. Speaking in terms of a lightweight build server, it's completely impractical to require the build server to have SharePoint installed. Not only is SharePoint a beast with high requirements but it would have serious performance implications on a build - and builds are supposed to be as fast and lean as possible. Leveraging MSBuild allows me to eliminate this installation requirement on the build server. In fact, our build server has no installation requirements other than the .NET framework (required by MSBuild) and Node.
As a reference, I would recommend checking out this book by Sayed Ibrahim Hashimi:
http://www.amazon.com/Inside-Microsoft-Build-Engine-Foundation/dp/0735645248/ref=sr_1_fkmr0_1?ie=UTF8&qid=1412014650&sr=8-1-fkmr0&keywords=msbuild+reliable+build
So, why should we bother migrating from solution files to an MSBuild 'makefile'?
First you have to tell u why you are even considering it? Isn't the solution file enough?Because it's reputed to be better practice
where?