In order to take full advantage of the services offered by the Team Foundation platform, one must build upon it by using the various mechanisms set in place for purposes of customization by the creators themselves. It is doubtful that the stock offerings provided by TFS will meet your organization’s needs, and this really comes to light with Team Build.
Unless the ideal build process for your organization’s product is extremely simple, you will most likely have to build upon the capabilities of Team Build through the creation of custom build tasks.
If you’ve stumbled across some code examples online detailing how to accomplish this, you may have found yourself scratching your head regarding the references assemblies required.
The base requirement of creating a custom task is to create a class that inherits Task (or ToolTask, etc.), which can be found in the Microsoft.Build.Utilitiesassembly. This should cause no trouble, as that assembly is part of the standard .NET 2.0+ Framework.`
To achieve actual integration with Team Foundation, however, other assemblies come in to play, such as Microsoft.TeamFoundation.Client and Microsoft.TeamFoundation.Build.Client, among others (depending on your needs).
Access to many of these assemblies requires the installation of the Visual Studio 2008 SDK (assuming we are using TFS 2008), and can be found/referenced through Visual Studio’s “Add Reference…” dialog.
However, for some of the assemblies, such as Microsoft.TeamFoundation.Build.Client, their immediate location is not entirely clear; you cannot select them by default from the “Add Reference…” dialog, and the documentation provided by Microsoft regarding these assemblies is sparse at best.
The Microsoft.TeamFoundation.Build.Client assemblyis a desirable assembly itself in that it gives you access to useful interfaces for integration such as IConfigurationSummary, ICompilationSummary, IBuildDetail, as well as other objects such as InformationNodeConverters. These allow you to actually integrate with the Team Build progress screen itself and provide feedback on the build process, among other things.
I could not find much information regarding the location of these assemblies online, so I figured some other folks out there may also be experiencing a similar problem. To make use of these assemblies, you can find them along with many other useful Team Foundation related ones in Visual Studio’s private assemblies directory:
…\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies