导出、导入和管理工作项类型

Azure DevOps Services |Azure DevOps Server 2022 - Azure DevOps Server 2019 |TFS 2018

重要

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

可以使用以下命令 witadmin 管理项目的工作项类型:

  • destroywitd:销毁工作项类型,并在不恢复的情况下永久销毁该类型的每个工作项。
  • exportwitd:将工作项类型的定义导出到 XML 文件或命令提示符窗口。
  • importwitd:将 XML 定义文件中的工作项类型导入到项目中。 如果带相同名称的工作项类型已存在,则新的工作项类型定义将覆盖现有的类型。 如果工作项类型不存在,则会创建新的工作项类型。 若要验证定义工作项类型但不导入文件的 XML,请使用 /v 选项。
  • listwitd:在命令提示符窗口中显示指定项目中的工作项类型的名称。
  • renamewitd:更改特定项目中工作项类型的显示名称。 在你运行此命令后,此类型的工作项将显示新的名称。

若要详细了解如何使用工作项类型来跟踪工作,请参阅在Azure Boards用户情景、问题、bug、功能和史诗中跟踪工作项

如何运行 witadmin 命令行工具

若要运行 witadmin 命令行工具,请打开安装 Visual Studio 的命令提示符窗口。 命令行 witadmin 工具随任何版本的 Visual Studio 一起安装。 可以通过安装免费版本的 Visual Studio Community 或 Visual Studio Team Explorer 来访问此工具。

注意

如果要连接到 Azure DevOps Services,建议使用最新版本的 Visual Studio 或 Visual Studio Community。

注意

如果要连接到本地服务器,建议使用与Azure DevOps Server相同的或更高版本的 Visual Studio。 例如,如果连接到 Azure DevOps Server 2019,则从 Visual Studio 2019 版本连接到项目。

对于 Visual Studio 2022

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

ProfessionalEnterprise 取代 Community,具体取决于已安装的版本。

对于 Visual Studio 2019

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

ProfessionalEnterprise 取代 Community,具体取决于已安装的版本。

对于 Visual Studio 2017

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

TeamExplorerProfessional 取代 Enterprise,具体取决于已安装的版本。

在 32 位版本的 Windows 上,将 %programfiles (x86) % 替换为 %programfiles%。 可以安装Visual Studio Community (,它免费提供对团队资源管理器) 或 Visual Studio Team Explorer 2017 的访问权限

提示

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

提示

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

或者,可以使用 TFS 团队项目经理,这是 GitHub 提供的开源客户端。

先决条件

对于定义工作项类型的项目,必须设置以下权限:

  • 若要导出或列出工作项类型,您必须是 “项目管理员 ”组的成员,或者将 “查看项目级别信息” 权限设置为 “允许”。
  • 若要销毁、导入或重命名工作项类型,您必须是 Team Foundation 管理员 安全组或 项目管理员 安全组的成员。

有关详细信息,请参阅 更改项目集合级别权限

注意

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

语法

witadmin destroywitd /collection:CollectionURL /p:Project /n:TypeName [/noprompt]   
witadmin exportwitd /collection:CollectionURL /p:Project /n:TypeName [/f:FileName] [/e:Encoding] [/exportgloballists]  
witadmin importwitd /collection:CollectionURL [/p:Project] /f:FileName [/e:Encoding] [/v] 
witadmin listwitd /collection:CollectionURL /p:Project    
witadmin renamewitd /collection:CollectionURL /p:Project /n:TypeName /new:NewName [/noprompt]   

参数

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

本地格式:http://ServerName:Port/VirtualDirectoryName/CollectionName
如果未使用虚拟目录,请使用以下格式: http://ServerName:Port/CollectionName
/p:Project 要管理其工作项类型的项目。 必须在 /collection 参数指定的项目集合中定义此项目。

/p 参数是必需的,除非使用 /v 选项运行 importwitd 命令。
/n:TypeName 要销毁、导出、导入或重命名的工作项类型的名称。
/f:FileName 包含要导出或导入的工作项类型的 XML 定义文件的路径和文件名。 如果使用 exportwitd 命令时省略此参数,则 XML 将显示在命令提示符窗口中。

注意: 如果使用 Windows Vista,则可能没有对某些文件夹的权限。 如果你尝试将工作项类型导出到没有权限的位置,注册表虚拟技术会自动重定向导出的文件并将其保存到虚拟存储。 若要避免此重定向,你可以将文件导出到具有权限的位置。 有关详细信息,请参阅 Microsoft 网站上的 注册表虚拟化 页。
/e:*Encoding .NET Framework 2.0 编码格式的名称。 该命令使用指定的编码来导出或导入 XML 数据。 例如, /e:utf-7 指定 Unicode (UTF-7) 编码。 如果省略此参数, 则 witadmin 会尝试检测编码,如果检测失败, 则 witadmin 使用 UTF-8。
/exportgloballists 导出由工作项类型引用的全局列表的定义。 全局列表的定义将嵌入到工作项类型定义 XML。 若未指定,将省略全局列表的定义。
/v 验证定义工作项类型但不导入 XML 定义文件的 XML。 注意: 无需指定项目即可验证类型定义。 将忽略对项目范围的组的引用。
/new:NewName 工作项类型的新名称。
/noprompt 禁用请求确认的提示。
/?help 在“命令提示符”窗口中显示有关命令的帮助。

注解

使用 destroywitd 命令时,它会销毁以下所有对象:

  • 工作项类型
  • 该类型的所有工作项
  • 工作项表格、长文本表格和链接表格中的对应条目
  • 工作项类型元数据缓存中的对象

示例

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

  • 项目集合的 URI: http://AdventureWorksServer:8080/tfs/DefaultCollection
  • 项目名称: AdventureWorks
  • 输入或输出文件名: myworkitems.xml
  • 工作项类型名称: myworkitem
  • 默认编码: UTF-8

导出 WIT 的定义

以下命令会将 myworkitem 的定义导出至文件 myworkitems.xml。

witadmin exportwitd /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /p:AdventureWorks /f:myworkitems.xml /n:myworkitem  

以下示例使用 Unicode (UTF-7) 编码导出工作项。

witadmin exportwitd /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /p:AdventureWorks /f:myworkitems.xml /n:myworkitem /e:utf-7  

导出 WIT 的定义及其引用的全局列表

以下示例将导出工作项类型及其引用的全局列表。

witadmin exportwitd /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /p:AdventureWorks /f:myworkitems.xml /n:myworkitem /exportgloballists  

列出 WIT 的定义

以下示例将在命令提示符窗口中显示工作项类型的定义。

witadmin exportwitd /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /p:AdventureWorks /n:myworkitem  

导入 WIT 的定义

以下示例将从 XML 文件导入工作项定义。

witadmin importwitd /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /f:myworkitem.xml /p:AdventureWorks  

验证 WIT 的 XML 定义

以下示例验证定义工作项类型但不导入定义的 XML。

witadmin importwitd /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /f:myworkitem.xml /p:AdventureWorks /v  

问题解答

问:升级后,我可以进行哪些自定义,并且仍使用“配置功能向导”更新我的项目?

答: 可以添加自定义 WIT 并更改窗体布局。 配置功能向导将更新项目,你将获得最新功能的访问权限。

更改工作流或重命名 WIT 可能需要在更新项目时执行一些手动操作。 若要了解可以安全地进行哪些自定义以及应避免哪些自定义,请参阅 自定义工作跟踪体验:在自定义之前,请了解维护和升级的影响

问:如何更改与 WIT 关联的颜色?

答: 在 Web 门户中,工作项显示在查询结果中以及敏捷规划工具的积压工作和板页上。 若要更改与现有 WIT 关联的颜色或添加用于新 WIT 的颜色, 请编辑进程配置

针对不同工作项类型的颜色分配

问:如何停用或禁用 WIT? 如何限制用户创建特定类型的工作项?

答: 如果你有一个要停用的工作项类型,但维护基于该类型创建的工作项,则可以添加一个规则,禁止所有有效用户保存工作项类型。

    <TRANSITION from=" " to="New">  
       <FIELDS>  
         <FIELD refname="System.CreatedBy">  
              <VALIDUSER not="[Team Project Name]Project Valid Users" />  
         </FIELD>  
       </FIELDS>  
    </TRANSITION>     

若要只允许一组用户创建特定 WIT,可通过两种方式来限制访问:

<TRANSITION from=" " to="New">  
   <FIELDS>  
     <FIELD refname="System.CreatedBy">  
         <VALIDUSER for="Allowed Group" not="Disallowed Group" />  
     </FIELD>  
   </FIELDS>  
</TRANSITION>  

问:如何删除 WIT?

答: 若要防止团队成员使用特定 WIT 创建工作项,可以从项目中删除它。 使用 witadmin destroywitd时,将永久删除使用该 WIT 创建的所有工作项以及 WIT 本身。 例如,如果团队不使用障碍,则可以从 Fabrikam 网站项目中删除 WIT 标记为障碍。

witadmin destroywitd /collection:"http://FabrikamPrime:8080/tfs/DefaultCollection" /p:"Fabrikam Web Site" /n:"Impediment"   

删除属于某个类别的 WIT 时,必须更新项目的类别定义以反映新名称。 具体而言,在更新类别定义之前, 敏捷规划工具 将不起作用。

有关详细信息,请参阅 导入和导出类别