Sign in
in
   
"It is the mark of an educated mind to be able to entertain a thought without accepting it."
-Aristotle

About Me

I am a co-founder of Notches, an early stage startup currently based in NYC. We are building a free, open reviews network that anyone can participate in and anyone can build on top of. You can find out more on our official blog.

Read more about my background.

Connect with me on...

Recent Readers

Flickr Photos

 

Warning:

This article is more than 45 days old. Given the speed at which the technology world moves, this post is probably somewhat out of date. Please keep this in mind when reading the post. If this is a tutorial, please check whether you are using the same versions mentioned in the article.

PDC05 - An Introduction to MSBuild

Faisal Mohamood, a good friend, former colleague and more recently PM on the MS Build team, gave a great lunch session on the new MS Build System. It was originally scheduled for Day 1, but moved because the keynote ran so long.

MS Build is the new build engine that ships with VS.NET 2005. It is based on a fully open and published XML file format and is completely customizable.

You can extend the build process with managed code - adding your own tasks & loggers, for example. And more importantly, you no longer need VS.NET to build projects. (While it's true you could compile with just the SDK in the past, you couldn't compile existing projects).

MS Build is built around three core concepts:

  • Items
  • Properties
  • Targets

Items are build artifacts on disk that can have rich metadata. Properties are statically defined scalars that can be used throughout the build process. The engine itself exposes a lot of built-in metadata.

Targets are actions that can happen. You can use a predefined set of targets or define your own custom ones. VS.NET itself uses MS Build, simply defining a set of default targets for compiling, copying to the bin\debug folder, and so on.

The only major drawback of MS Build now is that it doesn't work with VS.NET 2003, so it can only be used to build CLR 2.0 applications at this point.

Only published comments... Oct 08 2005, 08:17 AM by Tim

View related posts

No Comments