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

Matt Weber

I'm the founder of Bad Echo LLC, which offers consulting services to clients who need an expert in C#, WPF, Outlook, and other advanced .NET related areas. I enjoy well-designed code, independent thought, and the application of rationality in general. You can reach me at

 Leave a Reply



You may use these HTML tags and attributes: <a href="" title="" rel=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

© 2012-2013 Matt Weber. All Rights Reserved. Terms of Use.