Microsoft has a three series article showing the details of MSBuild. It is a recommended read if you care on what the new build system would be.

What is MSBuild you ask? MSBuild is a long overdue IMHO technology installed with the CLR in Visual Studio 2005 and “Longhorn”. Its goal is to replace makefiles by project files written in XML that let you build large-scale systems. In a project file, targets are used to organise and define high-level construction sets with explicit dependencies. Within a target, tasks are executed to modify inputs and generate outputs that can be passed to the next task or target in a loosely coupled way.

When you create either an application or a class library using Visual Studio 2005, a project file is generated. This file is an MSBuild project file, which explicitly defines every step or target that will be computed when you ask Visual Studio to build it. Yes, no more black box. You know exactly what Visual Studio is doing when it builds your project. With the bits given at the 2003 PDC, the integration of MSBuild and Visual Studio is not complete (as you have seen with the .targets files yet to be finished), but this will definitively be fixed for Visual Studio 2005.

With MSBuild, it is possible to compute the solution files created by a developer using Visual Studio .NET: there is nothing special to install on your build lab machines. This article shows how easy it is to write your own logger extension and to handle the events raised by the MSBuild engine when you want to create custom build reports.

You can check out the <strong>first</strong> , <strong>second</strong> and <strong>final</strong> parts of the article.