The Windows application is something I wrote, and is specific to our product and build process. The application is a simple property sheet, with three tabs. The first tab displays edit fields for the version number, build number, special and private build comments. The second and third tabs display the contents of the two header files that define constants that are compiled into our version resources. When the application starts up, it gets the two header files out of SourceSafe. As the user changes the fields on the first page, the application edits the contents of the second and third pages so that they match. If the user clicks on the build button, the app checks out the two header files, rewrites them with the values in the fields on the first page, and then checks them back in. The next thing the build application does is it starts a VBScript that performs the actual build process. The script retrieves the entire project structure for the product from SourceSafe into an empty directory. The script then iterates through the top-level directories beneath the build directory, running VS.NET from the command line and building each solution file it finds. After the compile completes, the script runs InstallShield through OLE Automation and builds the installation. The script then copies the installation files to a final directory from which our test group can install the product. As a final step, the script reformats various text logs from the compile and InstallShield steps into a single HTML report that summarizes the results of the build. This sounds like a lot, but it really isn't. Given that we will go through 50-100 builds from the time we go from beta test to first customer ship, having the build process be as simple as possible really helps. On a previous product we had a set of batch files to do the job. They worked fairly well, but they were a pain to maintain, and we had to edit version information into our header file by hand. With the new approach, a build can be started with only a few clicks. I spent one day on the Windows application, and 4-5 days on the script. This thing builds a product that consists of two user .EXE's, ~20 COM objects, 3 services, and a device driver. There's over 300 source files and probably in excess of 500,000 lines of code. There's just no way you could reliably build the whole thing without an automated process.
Software Zen: delete this;