Root XML Files
ProcessTemplate.xml is the root XML file that defines the entire process template and all subordinate XML files. The ProcessTemplate.xml file contains all of the task groups that must run to successfully create a team project. Each task group references a subordinate XML file (often in a subfolder) where the specific tasks are defined. In general, you specify one task group for each plug-in.
When customizing a process template, there are four key sections to complete in the ProcessTemplate.xml file.
Name
Use the name element to define a process template name. This element is required, and the name is displayed in the process template list in the New Team Project Wizard, and in the Process Template Manager dialog box.
<name>Simple Process</name>
Description
Use the description element to provide a description of the process template. This text is displayed on the Select a Process Template screen in the New Team Project Wizard when a project lead or administrator is deciding which process template to use. In general, try to describe what kinds of projects the process template is useful for in terms of team size, length, cost, and other factors.
<description>Choose the simple process for projects that require little or no overhead and have very low cost.</description>
Plugins
The Plugins element lists all of the plug-ins used by the process template. You must make sure that if any subordinate XML file is referencing a plug-in, that same plug-in appears in this list. You must also specify the wizardPage attribute (a true or false value) to indicate if the plug-in requires a page on the New Team Project Wizard. The following XML shows the correct values to use for each of the six plug-ins that ship with Visual Studio Team System.
<plugins>
<plugin name="Microsoft.ProjectCreationWizard.Classification" wizardPage="false"/>
<plugin name="Microsoft.ProjectCreationWizard.Reporting" wizardPage="false"/>
<plugin name="Microsoft.ProjectCreationWizard.Portal" wizardPage="true"/>
<plugin name="Microsoft.ProjectCreationWizard.Groups" wizardPage="false"/>
<plugin name="Microsoft.ProjectCreationWizard.WorkItemTracking" wizardPage="false"/>
<plugin name="Microsoft.ProjectCreationWizard.VersionControl" wizardPage="true"/>
</plugins>
Task Groups
The task groups identify sets of tasks that will run. Generally there is one task group per plug-in, and this is the easiest model to follow. The following example shows how a task group creates the project structure. The specific tasks are defined in the referenced file (Classification.xml).
<group id="Classification"
description="Structure definition for the project."
completionMessage="Project Structure uploaded.">
<dependencies>
</dependencies>
<taskList filename="Classification\Classification.xml"/>
</group>
The following table describes each of the elements in a task group.
Element |
Description |
---|---|
id |
Identifies the task group. If another task group is dependent on this group, it will reference this id. |
description |
Not supported in this version. |
completionMessage |
Displays a message to the user if the task group completes successfully. The message is displayed during team project creation. |
dependency |
Specifies the id of another task group that this group is dependent on. The other group must complete its tasks before this group can start. |
taskList |
Identifies an XML file that contains the list of tasks to run. The list of tasks for a group must always be in a separate XML file. |