使用过程模板插件文件定义根任务
通过自定义 ProcessTemplate.xml,您可以添加、删除或更改处理过程模板插件文件的顺序。 ProcessTemplate.xml 是根文件,用于定义整个过程模板和所有从属 XML 文件。 此文件包含成功创建团队项目必须运行的所有任务组。 每个任务组引用一个用于定义特定任务的从属 XML 文件(通常位于子文件夹中)。 通常,您可以为每个插件指定一个任务组。
若要了解有关默认 TFS 过程模板的详细信息,请转到此处。 若要了解过程模板插件文件,请转到此处。
主题内容
ProcessTemplate.xml 文件的结构
定义插件和任务组
示例 ProcessTemplate 文件
ProcessTemplate.xml 文件的结构
在每个 ProcessTemplate.xml 文件中,您定义了元数据和任务组。 元数据介绍了模板并指定了要处理的插件,如下面的示例所示
<metadata>
<name>MSF for Agile Software Development 2013</name>
<description>This template is flexible and will work great for most teams using Agile planning methods, including those practicing Scrum.</description>
<plugins>
<plugin name="Microsoft.ProjectCreationWizard.Classification" wizardPage="false" />
<plugin name="Microsoft.ProjectCreationWizard.Reporting" wizardPage="false" />
<plugin name="Microsoft.ProjectCreationWizard.Portal" wizardPage="true" />
. . .
</plugins>
</metadata>
任务组指定了要为每个插件执行的依赖项和任务,如下面的示例所示:
<groups>
<group id="Classification" description="Structure definition for the project." completionMessage="Project Structure uploaded.">
<dependencies></dependencies>
<taskList filename="Classification\Classification.xml" />
</group>
<group id="Groups" description="Create groups and assign permissions." completionMessage="Groups created and permissions assigned.">
<dependencies>
<dependency groupId="Classification" />
</dependencies>
<taskList filename="Groups and Permissions\GroupsandPermissions.xml" />
</group>
. . .
</groups>
返回页首
定义插件和任务组
通过使用 ProcessTemplate 元素及其子元素来自定义 ProcessTemplate.xml 文件。 有关每个元素的语法的更多信息,请参见 过程模板 XML 元素引用。
通过指定指示序列中的以下信息,定义要处理的插件和根任务:
name。 使用此元素可将标签分配给过程模板。 在“新建团队项目向导”中,根据过程模板的名称指定过程模板,如下面的示例所示:
<name>Simplified Process</name>
需要此元素。 该名称不仅将显示在“新建团队项目向导”的过程模板列表中,还显示在“过程模板管理器”对话框中。 每个过程模板的名称在团队项目集合中必须是唯一的,且每个模板名称的长度不得超过 254 个 Unicode 字符。 如果上载与现有模板名称相同的模板,则将覆盖现有模板。
description。 使用此元素可定义在“新建团队项目向导”中描述过程模板的文本,如以下示例所示:
<description>Choose the simple process for projects that require little or no overhead and have very low cost.</description>
当项目主管或管理员确定要使用的过程模板时,此文本显示在“新建团队项目向导”的**“选择过程模板”**屏幕上。 通常,应尽量根据团队规模、时间长短、成本和其他因素描述进程模板可用于哪些类型的项目。
Plug-ins。 使用 plugins 和 plugin 元素可定义过程模板将使用的插件的集合。 如果有任何从属 XML 文件引用了某个插件,则必须确保此列表中显示有该插件。 您还必须指定 wizardPage 特性(值为 true 或 false),以指出该插件是否需要“新建团队项目向导”上的某页。 您必须指定当您创建团队项目时将处理的插件的集合,并“新建团队项目向导”中是否为该插件显示一个页面。
以下 XML 显示了用于 Visual Studio Application Lifecycle Management (ALM) 包含的九个插件中的每一个插件的正确值。
<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"/> <plugin name="Microsoft.ProjectCreationWizard.TestManagement" wizardPage="false" /> <plugin name="Microsoft.ProjectCreationWizard.Build" wizardPage="false" /> <plugin name="Microsoft.ProjectCreationWizard.Lab" wizardPage="false" /></plugins>
Task Groups。 使用 groups 和 group 元素可定义任务组。 每个任务组将定义处理各个插件所需的信息。 每个任务组将指定包含要处理的任务集以及组在其他任务组上具有的可选依赖项的文件。 最常见且最简单的策略是,针对每个插件为每个组创建一个 taskList 元素。
下面的示例演示了任务组如何创建默认组和权限。 特定的任务在引用的文件 (GroupsandPermissions.xml) 中定义。 此任务组具有一个依赖项,即已成功完成 Classification 组中的任务。
<group id="Groups" description="Create groups and assign permissions." completionMessage="Groups created and permissions assigned."> <dependencies> <dependency groupId="Classification" /> </dependencies> <taskList filename="Groups and Permissions\GroupsandPermissions.xml" /></group>
对于每个任务组,定义以下信息:
ID。 分配给插件的唯一标识。
说明。 在“新建团队项目向导”中描述插件任务的文本。
完成消息。 当成功完成插件的所有任务时,“新建团队项目向导”中显示的消息。
(可选)失败消息。 当未完成插件的一项或多项任务时,“新建团队项目向导”中显示的消息。
(可选)插件依赖项。 使用 dependencies 和 dependency 元素可定义要处理的插件的依赖项集合。 一个依赖项对应于一个插件,该插件在可处理当前插件任务之前必须成功完成。
任务文件。 使用 tasklist 元素可指定包含用于处理插件的任务集的文件。
返回页首
示例 ProcessTemplate 文件
下面的语法列出了 Microsoft Visual Studio Scrum 的 ProcessTemplate.xml 文件的内容。
<?xml version="1.0" encoding="utf-8"?>
<ProcessTemplate>
<metadata>
<name>Microsoft Visual Studio Scrum 2013</name>
<description>This template is for teams who follow the Scrum methodology and use Scrum terminology.</description>
<version type="6B724908-EF14-45CF-84F8-768B5384DA45" major="3" minor="6" />
<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" />
<plugin name="Microsoft.ProjectCreationWizard.TestManagement" wizardPage="false" />
<plugin name="Microsoft.ProjectCreationWizard.Build" wizardPage="false" />
<plugin name="Microsoft.ProjectCreationWizard.Lab" wizardPage="false" />
</plugins>
</metadata>
<groups>
<group id="Classification" description="Structure definition for the project." completionMessage="Project structure uploaded.">
<dependencies>
</dependencies>
<taskList filename="Classification\Classification.xml" />
</group>
<group id="Groups" description="Create groups and assign permissions." completionMessage="Groups created and permissions assigned.">
<dependencies>
<dependency groupId="Classification" />
</dependencies>
<taskList filename="Groups and Permissions\GroupsAndPermissions.xml" />
</group>
<group id="WorkItemTracking" description="Work item definitions uploading." completionMessage="Work item tracking tasks completed.">
<dependencies>
<dependency groupId="Classification" />
<dependency groupId="Groups" />
</dependencies>
<taskList filename="WorkItem Tracking\WorkItems.xml" />
</group>
<group id="VersionControl" description="Creating version control." completionMessage="Version control task completed.">
<dependencies>
<dependency groupId="Classification" />
<dependency groupId="Groups" />
<dependency groupId="WorkItemTracking" />
</dependencies>
<taskList filename="Version Control\VersionControl.xml" />
</group>
<group id="Build" description="Build default processes uploading." completionMessage="Build default processes uploaded.">
<dependencies>
<dependency groupId="VersionControl" />
<dependency groupId="Groups" />
</dependencies>
<taskList filename="Build\Build.xml" />
</group>
<group id="Lab" description="Creating Lab." completionMessage="Lab task completed.">
<dependencies>
<dependency groupId="Classification" />
<dependency groupId="Groups" />
<dependency groupId="WorkItemTracking" />
<dependency groupId="Build" />
</dependencies>
<taskList filename="Lab\Lab.xml" />
</group>
<group id="TestManagement" description="Test Management default configurations uploading." completionMessage="Test Management default configurations uploaded.">
<dependencies>
<dependency groupId="Classification" />
<dependency groupId="Groups" />
<dependency groupId="WorkItemTracking" />
</dependencies>
<taskList filename="Test Management\TestManagement.xml" />
</group>
<group id="Reporting" description="Project reports uploading." completionMessage="Project reporting tasks completed.">
<dependencies>
<dependency groupId="Classification" />
<dependency groupId="WorkItemTracking" />
<dependency groupId="VersionControl" />
</dependencies>
<taskList filename="Reports\ReportsTasks.xml" />
</group>
<group id="Portal" description="Creating project portal site" completionMessage="Project portal tasks completed.">
<dependencies>
<dependency groupId="Classification" />
<dependency groupId="Reporting" />
</dependencies>
<taskList filename="Windows SharePoint Services\WssTasks.xml" />
</group>
</groups>
</ProcessTemplate>