This is just a reminder for my self of how and why we do this.

We have 2 projects within a TFS project collection for our integration component developments. We have:

1. A project for .net based integration projects

2. A project for BizTalk based integration projects

The main reason we do this is so we dont have loads of TFS projects as we have a significant number of components but also we want some different rules around check in and source control locks etc etc…..

At this stage our build servers are still running cruise control rather than Team Build so one of the problems i was finding was when cruise control labelled a build in TFS i couldnt tell easily in the label search which component or folder the build label related to. We modified the build scripts to do a custom label with TF.exe so that we could put a specific label from each build. We used the following command:

<Exec Command=“C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\tf” label “$(CCNetProject).$(CCNetLabel)” $(MsBuildProjectDirectory) /recursive/”/>

Using this command means that the build label is applied at the right place for the workspace but also the label includes the cruise control project name making it easy to workout what the label was actually for rather than just being a bunch of version numbers.

There is probably a better way to do this but its working fine for us.