TFS Tool Provider

This section describes the scope of the Team Foundation Server tool provider as well as its usage. If you are interested in the creation of templates for the TFS tool provider please refer to TfsTemplates.


It is quite complex to create a process-specific template for Microsoft's Team Foundation Server 2005/2008 manually. One has to modify the provided MSF templates, or even worse start from scratch by writing a completely new xml template. Everyone who has ever undergone this procedure knows it is strenuous and error-prone, not only because of the scarce documentation but also because the template loader is quite untalkative about the causes of errors.

To simplify this process the Team Foundation Server provider for the Process Enactment Tool Framework has been created. Using the information given by the input process it generates a fully-fledged TFS process template, including:
  • Setup of the project structure
  • Initialization of work items (decision gates, products, activities, ...)
  • Work item linking (more on this later)
  • Upload of the process documentation into the SharePoint portal
  • Creation of roles

List of improvements over CollabXT

PET is the successor and replacement for CollabXT. It includes all its features, adding a great deal of flexibility and ease of use. Regarding the Team Foundation Server template generation, following improvements have been made:
  • Dynamic customization of type definitions according to the process
  • Support for tasks as a subdivision of activities
  • As a result of the PET integration: Support for virtually any process model (provided a process provider exists for it) as data source
  • Furthermore, PET enables saving and loading of projects, so that settings only need to be entered once
  • Prepared for localization
    • Remember: A TFS does only support process templates of the same language as its installation
  • Tight integration of a Work Item linking tool that supports more link types than its predecessor
  • Well-structured C# code that is easily extendable

How to create a TFS process template using PET

As PET streamlines the process of creating different products, the only thing one has to do to create a TFS template is to select and configure the tool provider.


Which data does the tool provider need to achieve its task? Only two, namely:
  • The path of a conversion template
  • The folder, in which the resulting process template will be placed


At this moment, PET only comes with a conversion template optimized for the V-Modell XT, but this one should be easily customizable for your specific needs.
Note: Conversion templates are language specific and can only be installed on a TFS setup in this language.

Optionally a third parameter, the documentation path, can be entered. All files within this folder are placed in the SharePoint portal later during the instantiation of the process template.

How to prepare the TFS for the process template instantiation

To enable the creation of a SharePoint portal, it is necessary to first install a template for it. A sample template - again optimized for the V-Modell XT - is provided with the created process template. Installing it goes by opening a command shell and entering:

cd /d C:\Program Files\Common Files\microsoft shared\Web Server Extensions\12\BIN # go to your IIS extensions directory

stsadm -o addtemplate -filename C:\Users\Administrator\Desktop\vmxt-en-wss30.stp -title "V-Modell XT Template" # install the template

iisreset # reset the server to apply changes

Note: Paths may need to be modified to reflect your servers configuration and folder structure.

Once this is done, the process template can be uploaded to the TFS.

This step is done within Visual Studio. Click Team -> Team Foundation Server Settings -> Process Template Manager in the menu bar. In the shown dialog click Upload and select the path of the process template.
The upload may take some seconds up to several minutes depending on your machine and the size of the template. Finally a new process template entry appears in the list.

Creation of a team project based on the template

Now we are ready to create a new team project that uses our process template. Click File -> Create Team Project, enter a project name and choose your process template on the second page of the wizard. Follow it until the end and let it instantiate the new project. Again this will take quite some time.

Work Item linking

By the time the project is created successfully the previously mentioned linking comes into play. The process template contains an executable TfsLinker.exe, which is able to link work items according to their relationships. If you want to use this handy tool instead of creating the links manualy, run it on the server.


The tool's user interface is simple and function-oriented. Simply enter your TFS address and click Connect. Afterwards, select the previously created project and click Link; everything else is done by the tool.


To put everything into a nutshell, the TFS tool provider for PET provides you with a fast and easy way to create process templates for Microsoft’s Team Foundation Server 2005 / 2008 from a process model and a conversion template.

Last edited May 2, 2011 at 8:25 PM by MtodaT, version 16


mthof Jul 28, 2010 at 2:21 PM 
Beim Versuch das Template gemäß:
Click Team -> Team Foundation Server Settings -> Process Template Manager in the menu bar. In the shown dialog click Upload and select the path of the process template.

auf den TFS 2010 hoch zu laden kam folgende meldung:

---Anfang Ausnahmeeintrag---
Zeit: 2010-07-28T16:01:00
Modul: Vorlagenimportprogramm
Ausnahmemeldung: NULL oder leer
Parametername: name (Typ ArgumentException)

Ausnahmestapelüberwachung: bei Microsoft.VisualStudio.TeamFoundation.MsfTemplate..ctor(String name, Int32 id, String description, PcwPluginCollection plugins)
bei Microsoft.VisualStudio.TeamFoundation.MsfTemplate.GetTemplateFromMetadata(ProjectCreationContext context, TemplateHeader header, XmlNode metaData)
bei Microsoft.VisualStudio.TeamFoundation.TemplateManagementService.ValidateMethodology(String folderPath, ILogHandler logHandler)
bei Microsoft.VisualStudio.TeamFoundation.TemplateManagementService.Import(String folderPath, ILogHandler logHandler)

---Ende Ausnahmeeintrag ---