管理工作项类型的全局列表

Azure DevOps Services | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018

重要

对于本地 XML 进程模型,可以使用 witadmin 来列出、导入、导出和修改项目的进程。 对于继承的和托管的 XML 进程模型,只能使用 witadmin 来列出和导出进程信息。 有关进程模型和支持的模型的概述,请参阅 自定义工作跟踪体验

全局列表是可包含在一个或多个工作项字段和类型中的选取列表。 使用全局列表可最大程度减少更新多个工作项类型共享的列表所需的工作量。 由于全局列表是为项目集合定义的,因此它们可以包含在集合中的所有项目的工作项类型中。

注意

托管的 XML 进程模型支持添加和更新全局列表。 若要了解详细信息,请参阅 过程模板自定义差异

你可以在其自己的定义文件中、在工作项类型的定义文件中或在全局工作流中定义全局列表。 全局列表定义管理为集合定义的全局列表。 全局列表定义使用 witadmin 命令行工具中的以下命令:

  • destroygloballist:销毁全局列表。
  • exportgloballist:将全局列表导出到 XML 文件或命令提示符窗口。 它将导出一个文件,其中包含已为项目集合定义的所有全局列表。
  • importgloballist:从 XML 文件导入全局列表。 如果你尝试导入服务器上已有的全局列表,将提示警告,询问你是否希望覆盖服务器上的全局列表。 如果导入不存在的全局列表,该命令将创建新的全局列表。
  • listgloballist:显示服务器上定义的每个全局列表的名称。

请参阅 GLOBALLIST XML 元素参考

如何运行 witadmin 命令行工具

若要运行witadmin命令行工具,请打开安装 Visual Studio 的命令提示符窗口。 Witadmin命令行工具安装 Visual Studio 的任何版本。 您可以通过安装Visual Studio Community 或 Visual Studio 团队资源管理器的免费版本来访问此工具。

注意

如果要连接到本地服务器,则必须使用与 Azure DevOps Server 相同或更高版本的 Visual Studio 或团队资源管理器。 例如,如果连接到 TFS 2017 实例,则必须从 Visual Studio 2017 或团队资源管理器2017进行连接。 没有团队资源管理器2015版本。

Visual Studio 2019 或团队资源管理器2019客户端:

%programfiles(x86)%\Microsoft Visual Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer

TeamExplorerEnterpriseProfessional 根据你所安装的版本,或来代替 Community

Visual Studio 2017 或团队资源管理器2017客户端:

%programfiles(x86)%\Microsoft Visual Studio\2017\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer

TeamExplorerEnterpriseProfessional 根据你所安装的版本,或来代替 Community

在 Windows 的32位版本中,将% programfiles (x86) %替换为% programfiles%。 可以安装 Visual Studio Community (,以便免费访问团队资源管理器) 或 Visual Studio 团队资源管理器 2017

提示

通过 witadmin,您可以 导入和导出定义文件。 你可以使用的其他工具包括过程编辑器 (要求你已安装 Visual Studio) 的版本。 从 Visual Studio Marketplace 安装过程模板编辑器

或者,你可以使用TFS Team Project 管理器,GitHub 提供一个开源客户端。

提示

通过 witadmin,您可以 导入和导出定义文件。 你可以使用的其他工具包括过程编辑器 (要求你已安装 Visual Studio) 的版本。 从 Visual Studio Marketplace 安装 TFS 过程模板编辑器。 您可以使用此版本的过程编辑器来修改旧样式工作项窗体。 不能使用它来编辑与 新 web 窗体关联的窗体。

或者,你可以使用TFS Team Project 管理器,GitHub 提供一个开源客户端。

先决条件

对于在其中定义全局列表的项目集合,你必须具有以下权限集:

  • 若要导出或列出全局列表,你必须是 " Project 集合有效用户" 组的成员,或者将 "查看集合级别信息" 权限设置为 "允许"。
  • 若要导入全局列表,你必须是Project 集合管理员"安全组的成员。
  • 若要使用witadmin destroygloballist销毁全局列表,你必须是Project 集合管理员"安全组的成员。

注意

即使你使用管理权限登录,也必须打开提升的命令提示符窗口,才能在运行 Windows server 2008 的服务器上执行此功能。 若要打开提升的命令提示符窗口,请选择 " 开始",打开 " 命令提示符 " 快捷窗口,然后选择 " 以管理员身份运行"。 有关详细信息,请参阅 Microsoft 网站上的以下页面: User 访问控制

语法

witadmin destroygloballist /collection:CollectionURL /n:GlobalListName [/noprompt] [/force]    
witadmin exportgloballist /collection:CollectionURL [/f:FileName] [/e:Encoding]    
witadmin importgloballist /collection:CollectionURL /f:FileName [/e:Encoding]   
witadmin listgloballist /collection:CollectionURL  

参数

参数 说明
/collectionCollectionURL 指定项目集合的 URI。 例如:

本地 TFS 格式: http://ServerName: Port/VirtualDirectoryName/CollectionName

如果未使用虚拟目录,则 URI 的格式如下: http://ServerName: Port/CollectionName
/nGlobalListName 要销毁的全局列表的名称。
/fFileName 要导出或导入的全局列表 XML 定义文件的路径和名称。

注意:如果客户端计算机运行 Windows Vista,则您可能没有访问某些文件夹的权限。 如果你尝试将全局列表导出到没有权限的位置,注册表虚拟化技术会自动重定向导出的文件并将其保存到虚拟存储。 有关详细信息,请参阅 Microsoft 网站上的 注册表虚拟化 页面。 若要避免此重定向,你可以将文件导出到具有权限的位置。
/eEncoding .NET Framework 2.0 编码格式的名称。 指定的编码将用于导出或导入 XML 数据。 例如, /e utf-7 指定 Unicode (utf-8) 编码。 如果省略此参数, witadmin 将尝试检测编码,并且如果检测失败, WITADMIN 将使用 utf-8。
/noprompt 禁用请求确认的提示。
/?帮助 在“命令提示符”窗口中显示有关命令的帮助。

注解

如果不存在,则导入全局列表将创建一个列表。 如果该列表已存在,则 witadmin importgloballist 命令将警告您当前列表将被覆盖。 你可以编写自己的程序来更新现有全局列表,也可以使用新数据自己更新全局列表。

若要创建新的全局列表,请从以下代码开始并根据需要进行修改。 本示例定义你可以对任务分配的专业的全局列表。

<?xml version="1.0" encoding="utf-8"?>  
<gl:GLOBALLISTS xmlns:gl="http://schemas.microsoft.com/VisualStudio/2005/workitemtracking/globallists"> <GLOBALLIST name="Disciplines"> <LISTITEM value="Architecture" /> <LISTITEM value="Requirements" /> <LISTITEM value="Development" /> <LISTITEM value="Release Management" /> <LISTITEM value="Project Management" /> <LISTITEM value="Test" /> </GLOBALLIST></gl:GLOBALLISTS>  

不要在全局列表中包含项目范围的安全组,因为全局列表的作用域为集合而不是项目。

若要将全局列表添加到字段,请导出包含该字段的工作项类型的定义并将其添加到字段定义,如下面的示例所示:

<FIELD name="Discipline" refname="Microsoft.VSTS.Common.Discipline" type="String">  
  <HELPTEXT>The discipline to which the task belongs</HELPTEXT>  
  <ALLOWEDVALUES>  
     <GLOBALLIST name="Disciplines" />  
  </ALLOWEDVALUES>  
</FIELD>  

若要查看更改,请导入类型定义并刷新你的浏览器或客户端缓存。 你可能需要关闭引用字段的工作项,然后再重新打开。

有关类型定义的导出和导入的信息,请参阅 导入、导出和管理工作项类型

示例

除非另外指定,否则在每个示例中应用下面的值:

  • 项目集合的 URI: http://AdventureWorksServer:8080/tfs/DefaultCollection
  • Server 网站端口:8080

显示全局列表的名称

下面的示例显示服务器上定义的全局列表。 该示例使用默认的 UTF-8 编码导出全局列表:

witadmin listgloballist /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection   

导出全局列表的定义

下面的示例导出全局列表:

witadmin exportgloballist /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /f:C:mygloballists.xml  

下面的示例将相同的全局列表导出到相同的服务器,但使用 Unicode (UTF-7) 编码:

witadmin exportgloballist /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /f:C:mygloballists.xml /e:utf-7  

导入全局列表的定义

下面的示例导入全局列表:

witadmin importgloballist /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /f:C:mygloballists.xml   

下面的示例将相同的全局列表导入到相同的服务器,但使用 Unicode (UTF-7) 编码:

witadmin importgloballist /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /f:C:mygloballists.xml /e utf-7