What build tools does Microsoft use?
This is the most common question I get when talking with customers.
I think it is important to point out that Microsoft does not have specific rules that every product development team has to follow. Instead we have a lot of best practices or guidelines on what or how to run a product group. This is flexible by design - some processes or tools may work for some groups but can be a real hindrance to others. My observation has been that the Windows team tends to be the de facto leader when it comes to the best build tools and processes. Since each product is rather unique, there are some information exchanges on what works in the Windows team and then the questioning product team decides on what they can/will adopt to improve their processes. I guess the assumption is when a process works for a group with over 2000 developers (Windows), it is safe to assume that it will scale down just as effectively.
So to answer the question, currently we use in-house developed tools with a movement of adopting the VSTS tools (NOTE: some of the VSTS tools that will ship are what we have been using internally for years such as prefast) that will be available when Whidbey (Visual Studio 2005) ships (see Soma’s blog). I do not think we have any statistics on what percentage of developers use Visual Studio for their code editor but it has to be in the very high 90’s (I mean how can you beat VS’s intellisense and debugging!). For the build in the various build labs, build.exe is very popular with MSBuild.exe gaining some ground. Some groups use nmake and makefiles and some have developed their own wrappers for devenv (command-line tool for Visual Studio builds).
What should you be using?
I always tell my customers to adopt MSBuild asap. It is the future of builds at MS and a very powerful tool (see Alex’s blog).
If you insist on using devenv then you should use Andy Reeves wrapper. He is keeping the xml tags compatible with MSBuild’s so this is a nice transition tool if you are hesitant in using MSBuild. I have got a lot of good feedback on this tool.