heh, microsoft have just released an automated tool to build, test and deploy your .net apps:
http://www.microsoft.com/downloads/details.aspx?FamilyID=b32497b0-77f7-4831- 9c55-58bf3962163e&DisplayLang=en with description here, in a winzip exe wrapper around what is really a PDF File http://www.microsoft.com/downloads/details.aspx?familyid=94fdb8c8-5a87-4545- af75-6053f32c7eca&displaylang=en End result is a tool that takes a declarative description of what VS.net solutions to run, and how to notify people, integrates with VSS. The following code sample shows the format of the configuration file settings. <configuration> <configSections> <section name="BuildIt" type="Sapient.Framework.Tools.BuildIt.BuildItSectionHandler, BuildIt"/> </configSections> <appSettings> <add key="appendTraceOutput" value="off" /> <add key="enableCustomMessageFilter" value="on"/> <add key="visualStudioProgID" value="VisualStudio.Solution.7"/> </appSettings> <buildIt> <sourceControl username="username" password="password" iniFilePath="c:\Program Files\Microsoft Visual Studio\VSS\srcsafe.ini" srcVSSRootFolder="$/System" srcFileRootFolder="c:\System"/> <solutions latestRootFolderFullName="c:\System" buildNumberFilePath="c:\System\BuildNumber.xml"> <solution path=" c:\System\Solution1\Solution1.sln"/> <solution path=" c:\System\Solution2\Solution2.sln"/> </solutions> <options> <sendBuildReport mode="on/off" smtpServer="255.255.255.255" toAddress="[EMAIL PROTECTED]"/> <archiveBuild mode="on/off" archiveRootFolderFullName="c:\System\Archive"> <additionalFoldersToArchive> <folder fullName="c:\System\Solution1\Setup1\Debug" destFolderName="Debug\Setup1" /> <folder fullName=" c:\System\Solution1\Setup1\Release" destFolderName="Release\Setup1" /> </additionalFoldersToArchive> </archiveBuild> <updateAssemblyVersion mode="on/off" vbAssemblyVersionVSSPath="$/System/AssemblyVersionInfo.vb" csAssemblyVersionVSSPath="$/System/AssemblyVersionInfo.cs"/> </options> </buildIt> </configuration> The amusing things is the tool (a) requires fully qualitifed paths everywhere "Fully qualified paths are more flexible than relative ones, but at the expense of being cumbersome." heh? relative paths is the key to cross-system portability. (b) have any form of plug-in extensibility: the only way to do it is to edit the source. Still these are details. Clearly team .NET has noticed that the java land has a better way of doing things. (And the NANT folk too, though that is not as mainstream in the NET space, yet). Notice also that BuildIt relies on VS.net being around, so is not the zero cost SDK+build tool option that NANT or Ant is.