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.
dude..,if u are a .net developer and is keen to go out from the black box..there is a good FOSS option called "MONO".its IDE is pretty much like the .NET.
ReplyDeletethere have been some big c# projects done through the MONO and seems to be successful.
if u have time,try to apt-get the package on a linux box.
actually on msbuild we can say it is as a whitebox because it gives the facility to customize the build process.
ReplyDeleteAnd also cruise control is a free & open source tool. I believe that we should use the tools which we want at the time.and we I think we shouldn't go for tools just because it is open source.