Overview of MSBuild

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 first, second and final parts of the article.

Published by

Amit Bahree

This blog is my personal blog and while it does reflect my experiences in my professional life, this is just my thoughts. Most of the entries are technical though sometimes they can vary from the wacky to even political – however that is quite rare. Quite often, I have been asked what’s up with the “gibberish” and the funny title of the blog? Some people even going the extra step to say that, this is a virus that infected their system (ahem) well. [:D] It actually is quite simple, and if you have still not figured out then check out this link – whats in a name?

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.