Building Software

warning: Creating default object from empty value in /home/phecht/public_html/ado/modules/taxonomy/ on line 33.

Hudson goes to the cloud

Hudson CI is a great tool. Now the people at CloudBees have created a cloud-based solution. As of 11/09/2010 it is in beta and is free. See for more details.

A TF Command file example

Put the following into a script.tfc file called for example.

cd %3
rem Change the current directory from whatever it is to the project folder.
workspace /new /s:TeamServer2 /user:UNO\juan %1BuildWS%2
rem Create a new workspace on the TeamServer2 server as user UNO\juan.
rem Assign a name to the workspace that concatenates the first command line argument (%1) + "BuildWS" + the second command line argument (%2)
get %1 /recursive
rem retrieve the latest version of the first command line argument.
branch %1 %1V%2
checkin /comment:”This is build v%2 of %1”
label %1Build%2 /category:builds /comment:”%1 Build %2” %1V%2
workspace /delete %1BuildWorkspace%2

Keeping labels when the retention policy deletes builds.

If you setup your TFS build server to delete old builds you might not know TFS deletes the label for that build as well. If you one of those old builds you want to have the label you used to build it. Many ways to deal with this issue. Changing the AT web.config is how to change it for all builds. The builds will be deleted, but the labels will remain.


"The build admin can add a flag to the Web.config file on the Application Tier to specify that labels should not be deleted. Here is an example of what that line in the web.config file would look like:

<add key="PreserveLabelsOnBuildDeletion" value="True"/>

Large team considerations for large teams using tfs.

Here is a piece on # of projects and some sql queries.

Building with tfs 2008

Here is an interesting add on: It has many tasks and targets.

I found the "sdctasks" from this site: shows how to build using multiple cores. Also, shows some ability to keep projects from building at the same time.

Finally, seems to offer Wix ability as well.


"ccbuild is a C++ source scanning build utility for code distributed over directories. Like a dynamic Makefile, ccbuild finds all programs in the current directory (containing "int main") and builds them. For this, it reads the C++ sources and looks at all local and global includes. All C++ source files in the same directories of the local includes are considered objects for the main program. The global includes lead to extra compiler arguments using a configuration file. Next to running g++ it can create simple Makefiles, A-A-P files, and graph dependencies using DOT (Graphviz) graphs."

The code should be an example of how to parse a file.

Build Understanding Document

Having an agreement between developers and the build team will keep everyone's expectations in check.

Below should be the minimum of any document.

You need at least these items:
What output is expected?

What setup is needed?

What input will be used?
VCS: Branch? Modules?

TFS Other Links came from a presentation I saw here: You can see a java shop convert to TFS.

Also is a good source.

Using scons with Visual Studio solution sln files. is supposedly a project that will take a perfectly good sln file and convert to one scons can use. Scons can be found here:

Syndicate content