There have been several instances when working with multiple teams that they need to build different build configurations on the same build machine. For example, we have a central build type that encapsulates the compilation of the bits, database installation and unit testing, and packaging of the compiled bits into an MSI. We also have build configurations that separate each. With OOB functionality you get an error message with the details of a soap exception explaining that only one build can be run at a time, which is understandable, but what about queuing?

To get around this issue, I built a queuing web site that can be used to invoke builds instead of through the team explorer. The code uses the thread pool to wait for the active build to complete then starts its build task