A sad story about MSBuild
We had been looking for a new build tool to build our VS.NET products for a while now. I came from the J2EE world and was delighted to run across NAnt a year or so ago. Then I went to the PDC in Los Angeles and got a glimpse of MSBuild. MSBuild looks really nice. It's a no brainer that MSBuild will immediately become popular when Whidbey releases, so you know it has a bright future. If only MSBuild ran under .NET framework 1.1 we could start using it now instead of NAnt...hmmm...if only...
I did some experimentation with the Whidbey version we got at PDC and was thrilled when I got it to run under 1.1 by pulling out just the MSBuild related bits and target files and added a config file. It is important to point out that this is completely unsupported, and that it wasn't quite that easy, but with the help of Jamie Cansdale (of NUnitAddIn fame) who discovered a few more tricks we were able to actually get it to be fairly functional. There are some missing features in the PDC version, but it can compile a Hello World app beautifully.
Now before you go digging for your PDC DVD, there is something you should know. Starting with the upcoming Whidbey beta Microsoft has apparently changed the metadata format output by their compilers so .NET framework 2.0 (yes, it's now known as 2.0 instead of 1.2) compiled binaries are no longer able to be run under older frameworks. Bottom line is the MSBuild binaries distributed with Whidbey beta and forward will not be able to run under 1.1 any more. Since there are many features that weren't complete yet in the PDC version, this meant the end of the road for an early (albeit unsupported) adoption of MSBuild for us...hello again NAnt.
I'm not complaining, the new release of NAnt 0.84 looks really nice, and when coupled with NAntContrib it's a powerful build arsenal. There is amazing value in an active open source community like NAnt has. Also continuous integration tools like CruiseControl.NET and Draco.NET are built around NAnt.
I just wish Microsoft could continue to give us a 1.1 compatible version of MSBuild rather than tying it to 2.0. It would jump start their add-on task and tool community. Tools like CruiseControl.NET would undoubtedly provide a choice of MSBuild or NAnt.
It is likely to be a long time before Whidbey is actually adopted in our shop...and therefore it's going to be a long time before I get to actually use MSBuild again for real. So long friend, it was fun while it lasted <snif>.