导出、导入和管理工作项类型
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
重要
对于本地 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
或Professional
Enterprise
代替Community
,具体取决于你安装的版本。
对于 Visual Studio 2019
%programfiles(x86)%\Microsoft Visual Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer
或Professional
Enterprise
代替Community
,具体取决于你安装的版本。
对于 Visual Studio 2017
%programfiles(x86)%\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer
或TeamExplorer
Professional
代替Enterprise
,具体取决于你安装的版本。
在 32 位版本的 Windows 上,将 %programfiles(x86)% 替换为 %programfiles%。 可以 免费安装 Visual Studio Community(提供团队资源管理器的访问权限)或 Visual Studio Team Explorer 2017 。
提示
使用 witadmin,可以 导入和导出定义文件。 可以使用的其他工具包括进程编辑器 (要求你已安装 Visual Studio) 版本。 从 Visual Studio Marketplace 安装进程模板编辑器。
先决条件
对于定义工作项类型的项目,必须设置以下权限:
- 若要导出或列出工作项类型,您必须是项目管理员组的成员,或者将“查看项目级信息”权限设置为“允许”。
- 若要销毁、导入或重命名工作项类型,你必须是 Team Foundation Administrators 安全组或项目管理员安全组的成员。
有关详细信息,请参阅 更改项目集合级别权限。
注意
即使使用管理权限登录,也必须打开提升的命令提示符窗口,才能在运行 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 时,必须更新项目的类别定义以反映新名称。 具体而言,在更新类别定义之前, 敏捷规划工具 将不起作用。
有关详细信息,请参阅 导入和导出类别。