Doesn't Microsoft use MSBUILD internally?


Increasingly we do. At the time of writing (9/2005) about 1/4 of the VS 2005 that you will get on the DVD has been built with MSBuild and are planning to have the VS tree fully converted from build.exe/nmake within the next 6 months. After that, we'll have to figure which group to work on next.. Office? Groups just need to be persuaded that we can do the job - few teams have much love for build.exe and nmake.

Naturally, we had to create tasks for CL, Lib, Link, Midl, etc - these should ship in a future MSBuild version for everyone to use - and we had to recreate the build rules encapsulated in makefile.def and hundreds of other makefiles, in new MSBuild targets files.

We use semi-automated conversion tools to parse the sources and makefiles and create projects out of them, a tool to compare build outputs before and after conversion, and a smart command line differ that runs over the whole tree and summarizes the command line differences before and after a targets file tweak. We also have a shim tool that allows developers to open up the new MSBuild projects in the VC project system, so they can use it themselves like any customer would even though it isn't the VC project system doing the build.

To get this far has taken us about a year, but it's accelerating rapidly. The benefits of this "dogfooding" are multifold:
(1) We've found and fixed lots of bugs in MSBuild in the process, including one subtle race condition in the CLR at the very last minute that only appears when we build VS - all benefits for external customers.
(2) We help internal developers "dogfood" VS more, because now they can use the VS project system, as well as the heavily dogfooded features like the editor and debugger.
(3) Going forward, it's going to be a great testbed for us to try out multiprocessor support, and MSBuild support for VC++.
(4) We get a better build process! - increasingly the perf is better, the diagnosability is better, the toolability is better. Nmake was not evolving while MSBuild will add more and more cool features to help builds be easier to maintain and more reliable.

If you're interested in more information, email msbuild@microsoft.com.

Dan
Microsoft Communities