MSBuild is the process that runs when you hit the command "build" (F5) on Visual Studio IDE. On VS 2003 completely that was done by the IDE and it was a black box for the developers. But on VS 2005 when you create a new project you can see a .csproj (or .vbproj) file is created and when you open that file in any text editor you can see some XML tags on that. Actually those are the parameters that were sent to do the build. The idea behind this is you can change the build process of your project.
The msbuild.exe file is at "(win drive :\) \WINDOWS\Microsoft.NET\Framework\v2.0.50727". The good thing in this is since msbuild.exe is included in .net framework you do not need an IDE to build your project. The solutions were deployed on a clean machine for testing and it have to be done daily on enterprise level solutions. And also on enterprise level solutions so many developers get involve and to minimize the conflict it has to use a version control system like VSS (Visual Source Safe).
So the machine which is used to deploy should get the latest code from the VSS, do the build process and notify the developers about the status (failed\succeeded). Since the real world solutions contain so many projects on one solution there are so many individual .csproj files. We have to run one by one of them and do the build. For these tasks it is easy to use Cruise Control.net (CC.net) which can do all the tasks I mentioned earlier very easily.
So by using CC.net it is easy to get the latest code from the VSS then to build the projects using MSBuild and to notify the status by e-mail.
This is the start of this automated build tools and my next tutorial on these technologies will come soon. Basically my target is to go step by step on these technologies and give you all a clear idea about the automated build tools.