Azure DevOps Services |Azure DevOps Server |Azure DevOps Server 2022 |Azure DevOps Server 2020
重要
对于本地 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 Marketplace 安装进程模板编辑器。
先决条件
对于定义工作项类型的项目,请设置以下权限:
- 若要导出或列出工作项类型,请成为 项目管理员 组的成员,或者让查看项目级信息 权限设置为“允许”。 
- 若要销毁、导入或重命名工作项类型,请成为 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 参数指定的项目集合中定义此项目。 除非使用 /v 选项运行 importwitd 命令,否则需要使用 /p 参数。 | 
| /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 的创建限制为一组用户,可通过两种方式限制访问:
- 将 WIT 添加到“隐藏类别”组 ,以防止大多数参与者创建它们。 如果想要允许一组用户访问,可以 创建指向打开工作项表单的模板 的超链接,并与要创建这些团队成员共享该链接。
- 将字段规则添加到 System.CreatedBy 字段的工作流 ,以有效限制一组用户创建特定类型的工作项。 如以下示例所示,创建工作项的用户必须属于 Allowed Group该用户才能保存工作项。
<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 时,必须更新项目的类别定义以反映新名称。 具体而言,在更新类别定义之前, 敏捷规划工具 将不起作用。
有关详细信息,请参阅 导入和导出类别。