导入和导出过程配置
Azure DevOps Services | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018
重要
对于本地 XML 进程模型,可以使用 witadmin 列出、导入、导出和修改项目的流程。 对于继承的和托管的 XML 进程模型,只能使用 witadmin 列出和导出进程信息。 有关流程模型和支持的概述,请参阅 自定义工作跟踪体验。
自定义流程配置以修改 Web 门户敏捷工具的显示。 一些其他工具需要你将工作流状态映射到元状态映射。
注意
如果你收到错误消息 TF400917,则表示出现了无效配置。 使用 witadmin importprocessconfig 将进程配置文件重新导入项目。 你将收到解决错误所需的消息。
若要管理项目的流程配置,请使用 witadmin 命令行工具导出和导入进程配置 XML 定义文件。 若要了解进程配置,请参阅 ProcessConfiguration。
- exportprocessconfig:将进程配置定义导出到 XML 文件或命令提示符窗口。
- importprocessconfig:导入进程配置定义 XML 文件。
如何运行 witadmin 命令行工具
若要运行 witadmin 命令行工具,请打开安装Visual Studio的命令提示符窗口。 witadmin 命令行工具随任何版本的Visual Studio一起安装。 可以通过安装免费版本的Visual Studio Community或Visual Studio团队资源管理器来访问此工具。
注意
如果要连接到本地服务器,则必须使用与 Azure DevOps Server 相同的或更高版本的 Visual Studio 或团队资源管理器。 例如,如果连接到 TFS 2017 实例,则必须从 Visual Studio 2017 或 Team Explorer 2017 进行连接。 没有团队资源管理器 2015 版本。
Visual Studio 2019 或 Team Explorer 2019 客户端:
%programfiles(x86)%\Microsoft Visual Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer
或者,TeamExplorerProfessional或Enterprise代替Community,具体取决于已安装的版本。
Visual Studio 2017 或团队资源管理器 2017 客户端:
%programfiles(x86)%\Microsoft Visual Studio\2017\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer
或者,TeamExplorerProfessional或Enterprise代替Community,具体取决于已安装的版本。
在 32 位版本的Windows上,将 %programfiles (x86) % 替换为 %programfiles% 。 可以安装Visual Studio Community (,该) 或Visual Studio团队资源管理器 2017 免费访问团队资源管理器。
提示
使用 witadmin,可以 导入和导出定义文件。 可以使用的其他工具包括进程编辑器 (要求已安装Visual Studio) 版本。 从Visual Studio市场安装进程模板编辑器。
或者,可以使用 TFS 团队Project管理器,这是一个可从GitHub获取的开源客户端。
提示
使用 witadmin,可以 导入和导出定义文件。 可以使用的其他工具包括进程编辑器 (要求已安装Visual Studio) 版本。 从 Visual Studio 市场安装 TFS 进程模板编辑器。 可以使用此版本的进程编辑器修改旧样式的工作项表单。 不能使用它来编辑与 新 Web 窗体关联的表单。
或者,可以使用 TFS 团队Project管理器,这是一个可从GitHub获取的开源客户端。
先决条件
- 若要导出进程配置定义,您必须是项目或集合的有效用户。
- 若要导入进程配置定义,你必须是以下安全组的成员:Team Foundation 管理员或Project管理员。
有关详细信息,请参阅 更改项目集合级权限。
语法
witadmin exportprocessconfig /collection:CollectionURL /p:ProjectName [/f:FileName] [/e:encoding]
witadmin importprocessconfig /collection:CollectionURL [/p:ProjectName] /f:FileName [/e:encoding] [/v]
参数
参数
说明
/collection:CollectionURLx
指定项目集合的 URI。 例如:
本地 TFS 格式:http://ServerName:Port/VirtualDirectoryName/CollectionName
如果未使用虚拟目录,则 URI 的格式如下: http://ServerName:Port/CollectionName。
/p:ProjectName
必需。 指定要为其导出或导入进程配置的项目。 必须在使用 /collection 参数指定的集合中定义此项目。 指定开关时不需要指定 /v 项目。
/f:FileName
要导出或导入的过程配置的 XML 定义文件的路径和名称。
注意
如果客户端计算机Windows Vista 运行,则可能无权访问某些文件夹。 如果你尝试将全局列表导出到没有权限的位置,注册表虚拟化技术会自动重定向导出的文件并将其保存到虚拟存储。 有关详细信息,请参阅 Microsoft 网站上的 “注册表虚拟化 ”页。 若要避免此重定向,你可以将文件导出到具有权限的位置。
/e:Encoding
可选。 .NET Framework 2.0 编码格式的名称。 指定的编码将用于导出或导入 XML 数据。 例如, /e utf-7 指定 Unicode (UTF-7) 编码。 如果省略此参数, witadmin 会尝试检测编码,并在检测失败时使用 UTF-8。
/v
可选。 验证定义过程配置的 XML,但是不导入定义文件。
/? 或 帮助
在“命令提示符”窗口中显示有关命令的帮助。
注解
安装最新版本的 TFS 升级现有项目。 如果要更新升级的项目,请参阅 升级后配置功能。
如果在升级后访问现有测试计划或测试套件时遇到问题,请参阅 手动更新以支持测试管理。
示例
在每个示例中应用下面的值:
- 集合的 URL: http://AdventureWorksServer:8080/tfs/DefaultCollection
- Project:Contoso
- 服务器网站的端口号:8080
将字段添加到快速添加面板
你可以为任何快速添加面板添加字段。 例如,以下示例将 业务价值 添加到产品积压工作面板。

面板仅显示所选 WIT 的 WIT 定义的节中包含的 FIELDS 字段。 例如,如果选择 bug WIT,则仅显示标题,因为未为 bug 定义业务价值。 若要向面板添加另一个 WIT,请将其添加到“要求类别”。 请参阅 向积压工作和板添加工作项类型。
如果没有项目的管理权限, 请获取它们。
根据 “如何运行 witadmin 命令行”工具中提供的说明打开命令提示符窗口。 例如:
cd %programfiles(x86)%\Microsoft Visual Studio\2017\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer导出过程配置文件。
witadmin exportprocessconfig /collection:CollectionURL /p:ProjectName /f:"DirectoryPath\ProcessConfiguration.xml"CollectionURL 的示例为http://MyServer:8080/tfs/TeamProjectCollectionName.
将字段引用名称添加到
AddPanel节。例如,以下语法将 Priority 元素添加到面板。
<AddPanel> <Fields> <Field refname="System.Title" /> <Field refname="Microsoft.VSTS.Common.BusinessValue" /> </Fields> </AddPanel>提示
- 可以使用此 索引查找字段的引用名称。
- 为针对“需求类别”定义的工作项类型添加所有必需的字段。 那样,在你通过面板添加积压工作 (backlog) 项时,你就可以避免需要打开工作项窗体来填充它们。
导入过程配置文件。
witadmin importprocessconfig /collection:CollectionURL /p:ProjectName /f:"DirectoryPath\ProcessConfiguration.xml"刷新积压工作 (backlog) 页来查看更新的面板。
更元状态映射以支持测试管理器
如果自定义 WORKFLOW 测试计划或测试套件的部分,则必须将状态映射到元统计信息。
在以下示例中,已更新测试计划工作流以使用设计、测试和已签署状态。 为了支持向后兼容性,将 TestPlanWorkItems 添加到 ProjectProcessConfiguration 进程配置定义的部分。
Workflow
<WORKFLOW>
<STATES>
<STATE value="Design" />
<STATE value="Testing" />
<STATE value="Signed Off" />
</STATES>
<TRANSITIONS>
<TRANSITION from="" to="Design">
<REASONS>
<DEFAULTREASON value="New test plan" />
</REASONS>
</TRANSITION>
<TRANSITION from="Design" to="Testing">
<REASONS>
<DEFAULTREASON value="Authoring complete" />
</REASONS>
</TRANSITION>
<TRANSITION from="Testing" to="Signed Off">
<REASONS>
<DEFAULTREASON value="Signed Off testing" />
</REASONS>
</TRANSITION>
<TRANSITION from="Signed Off" to="Design">
<REASONS>
<DEFAULTREASON value="Reactivating to authoring phase" />
</REASONS>
</TRANSITION>
<TRANSITION from="Signed Off" to="Testing">
<REASONS>
<DEFAULTREASON value="Reactivating to run tests" />
</REASONS>
</TRANSITION>
<TRANSITION from="Testing" to="Design">
<REASONS>
<DEFAULTREASON value="Back to authoring" />
</REASONS>
</TRANSITION>
</TRANSITIONS>
</WORKFLOW>
元状态映射
<TestPlanWorkItems category="Microsoft.TestPlanCategory" pluralName="Test Plans" singularName="Test Plan">
<States>
<State type="InProgress" value="Design" />
<State type="InProgress" value="Testing" />
<State type="Complete" value="Signed Off" />
</States>
</TestPlanWorkItems>
<TestSuiteWorkItems category="Microsoft.TestSuiteCategory" pluralName="Test Suites" singularName="Test Suite">
<States>
<State type="Proposed" value="In Planning" />
<State type="InProgress" value="In Progress" />
<State type="Complete" value="Completed" />
</States>
</TestSuiteWorkItems>
如果你修改测试套件工作流,那么如果要映射新状态,则必须进行类似的更新。 可以在节中添加 TestSuiteWorkItems 它。 请参阅 ProcessConfiguration。
相关文章
问题解答
问:可以在 TFS 升级后使用“配置功能向导”更新项目,可以进行哪些自定义?
答: 可以自定义快速添加面板。 “配置功能向导”将更新项目,你将访问最新功能。
其他更改可能需要在更新项目时执行一些手动操作。 若要了解可以安全地进行哪些自定义以及应避免哪些自定义项,请参阅 “自定义工作跟踪体验:在自定义之前,请了解维护和升级含义。
问:何时需要将工作流状态映射到元状态?
答: 将工作流状态添加或删除到以下工作项类型时,应考虑更新进程配置以添加或删除相应的元数据映射。
属于要求类别或任务类别的工作项类型:元数据映射支持敏捷规划工具的显示。
属于 Bug 类别的工作项类型:元数据映射以支持 “我的工作 ”工具 (敏捷和基于 CMMI 的项目) 。
测试计划和测试套件:仅当支持团队成员从基于 Visual Studio 2013.2 或更低版本的测试管理器连接到Azure DevOps时,才能映射这些工作项类型的工作流的更新。
如果收到应用程序在连接到项目时 检测到意外错误 ,请更新元状态映射。

如何解决过程配置错误?
答: 对项目进行以下更改之一时,需要更新工作项类型、类别或进程配置的定义。 为了避免错误,请始终按以下顺序进行更改: (1 个) 工作项类型、 (2 个) 类别, (3 个) 进程配置。
自定义
更新或验证工作项类型定义
更新或验证过程配置定义
将工作项类型添加到要求类别
(工作项类型可以属于“要求类别”或“任务类别”,但不能同时属于.)
若要包含以下字段:
- 积压工作 (backlog) 优先级 (Scrum) 或堆栈级别(Agile 或 CMMI)
(必须与进程配置文件中分配给 type=Order 的字段值匹配) - 工作量 (scrum)、故事点 (Agile)、或大小 (CMMI)
(必须与进程配置文件中分配给type=Effort的字段值匹配) - 进程配置文件中分配给
type=Team的区域路径或字段值 - 进程配置文件节中包含的
AddPanel所有字段 (字段必须在节内FIELDS定义,但不必包含在节中FORM。
若要包含必需的元状态映射:
- 将每个工作流状态的开头映射到
type="Proposed" - 将每个你希望在看板上显示的中间工作流状态映射到
type="InProgress" - 将每个工作流状态的结尾映射到
type="Complete"
你可以仅将一个状态映射到type="Complete"
包含用于定义与 WIT 相关联的颜色代码的条目。 例如:
<WorkItemColor primary="FF009CCC" secondary="FFD6ECF2" name="Product Backlog Item" />
在“要求类别”中更改工作项类型的工作流
空值
若要包含所需的元数据映射,如上文所述,用于向“要求类别”添加工作项类型。
向任务类别添加工作项类型
若要包含以下字段:
- 积压工作 (backlog) 优先级 (Scrum) 或堆栈级别(Agile 或 CMMI)
- 活动(Scrum 或 Agile) 或专业 (CMMI)
(必须与进程配置文件中分配给type=Activity的字段值匹配) - 剩余工作
(必须与进程配置文件中分配给type=RemainingWork的字段值匹配) - 进程配置文件中分配给
type=Team的区域路径或字段值 - (可选)原始工作和完成的工作(仅限 Agile 和 CMMI)
若要包含必需的元状态映射:
- 将每个工作流状态的开始映射到 type=“建议”
- 将每个你希望在任务版上显示的中间工作流状态映射到
type="InProgress" - 将每个工作流状态的末尾映射到
type="Complete”
你可以仅将一个状态映射到type="Complete"
包含用于定义与 WIT 相关联的颜色代码的条目。 例如:
<WorkItemColor primary="FFF2CB1D" secondary="FFF6F5D2" name="Task" />
更改任务类别中工作项类型的工作流
空值
若要包含所需的元数据映射,如上文所述,用于向任务类别添加工作项类型。
将工作项类型添加到 Bug 类别, (敏捷和 CMMI 仅)
更改 Bug 类别中工作项类型的工作流 (敏捷和 CMMI 仅)
空值
若要包含必需的元状态映射:
- 将每个工作流状态的开头映射到
type="Proposed" - 将每个你希望在“我的工作”上显示的中间工作流状态映射到
type="InProgress" - 映射每个工作流状态类型的末尾=“Complete”
你可以仅将一个状态映射到 type="Complete"
若要了解详细信息,请参阅 使用“我的工作”的支持 bug 更新状态。
从“要求类别”或“任务类别”中删除工作项类型
空值
删除仅与该工作项类型关联的任何元状态映射
从项目中删除工作项类型
从类别文件中删除工作项类型。
删除仅与删除的工作项类型关联的任何元状态映射,以及 WorkItemColor 定义删除的工作项类型的颜色代码的元素。
问:是否要使用两个或两个以上的项目组合积压工作 (backlog)?
答: 默认体验支持一级项目组合积压工作。 最多可以添加五个级别,如 “向敏捷工具添加项目组合积压工作”中所述。
问:是否要添加或更改任务板或产品积压工作板中显示的工作项类型?
答: 如果已添加自定义工作项类型,并且想要将其添加到积压工作板或任务板,则可以。 你只是不能让他们出现在这两个地方。 了解如何阅读 “向积压工作项和板添加工作项类型”。