导入和导出过程配置

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

重要

对于本地 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 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 管理员项目管理员

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

语法

witadmin exportprocessconfig /collection:CollectionURL /p:ProjectName [/f:FileName] [/e:encoding]    
witadmin importprocessconfig /collection:CollectionURL [/p:ProjectName] /f:FileName [/e:encoding] [/v]  

参数设置

参数

描述

/collection:CollectionURLx

指定项目集合的 URI。 例如:

本地 Azure DevOps 格式: 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,但不导入定义文件。

/?help

在命令提示符窗口中显示有关命令的帮助。

注解

安装最新版本的 Azure DevOps 会升级现有项目。 如果要更新升级的项目,请参阅 升级后配置功能。

如果在升级后访问现有测试计划或测试套件时遇到问题,请参阅 手动更新以支持测试管理

示例

每个示例中都应用以下值:

  • 集合的 URL: http://AdventureWorksServer:8080/tfs/DefaultCollection
  • 项目: Contoso
  • 服务器网站的端口号: 8080

将字段添加到快速添加面板

可以为任何快速添加面板添加字段。 例如,以下示例将业务价值添加到产品积压工作面板。

添加了“业务价值”字段的积压工作面板

该面板仅显示所选 WIT 的 WIT 定义的节中包含的 FIELDS 字段。 例如,如果选择 bug WIT,则仅显示标题,因为未为 bug 定义业务价值。 若要将另一个 WIT 添加到面板,请将其添加到“要求类别”。 请参阅 向积压工作和板添加工作项类型。

  1. 如果没有项目的管理权限, 请获取它们

  2. 根据“如何运行 witadmin 命令行”工具提供的说明打开命令提示符窗口。 例如:

    cd %programfiles(x86)%\Microsoft Visual Studio\2017\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer
    
  3. 导出进程配置文件。

    witadmin exportprocessconfig /collection:CollectionURL /p:ProjectName /f:"DirectoryPath\ProcessConfiguration.xml"  
    

    CollectionURL 的示例为http://MyServer:8080/tfs/TeamProjectCollectionName.

  4. 将字段引用名称添加到 AddPanel 节。

    例如,以下语法将 Priority 元素添加到面板。

    <AddPanel>  
       <Fields>  
          <Field refname="System.Title" />  
          <Field refname="Microsoft.VSTS.Common.BusinessValue" />  
       </Fields>  
    </AddPanel>  
    

    提示

    • 可以使用此 索引查找字段的引用名称。
    • 为“要求类别”定义的工作项类型添加所有必填字段。 这样,就避免在通过面板添加积压工作项时打开工作项表单以填充它们。
  5. 导入进程配置文件。

    witadmin importprocessconfig /collection:CollectionURL /p:ProjectName /f:"DirectoryPath\ProcessConfiguration.xml"  
    
  6. 刷新积压工作页以查看更新的面板。

更新元状态映射以支持测试管理器

如果自定义 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

问题解答

问:何时需要将工作流状态映射到元状态?

答: 向以下工作项类型添加或删除工作流状态时,应考虑更新进程配置以添加或删除相应的元状态映射。

  • 属于要求类别或任务类别的工作项类型:元州映射支持显示敏捷规划工具。

  • 属于 Bug 类别的工作项类型:元州映射以支持 “我的工作 ”工具(基于敏捷项目和基于 CMMI 的项目)。

  • 测试计划和测试套件:仅当支持从基于 Visual Studio 2013.2 或更低版本的测试管理器连接到 Azure DevOps 的团队成员时,才能映射对这些工作项类型的工作流的更新。

    如果在连接到项目时收到 应用程序检测到意外错误 ,请更新元状态映射。

    TFS 升级后的应用程序错误错误消息

如何实现解决进程配置错误?

答: 对项目进行以下更改之一时,需要更新工作项类型、类别或进程配置的定义。 若要避免错误,请始终按以下顺序进行更改:(1)工作项类型、(2)类别和(3)进程配置。

自定义

更新或验证工作项类型定义

更新或验证进程配置定义

将工作项类型添加到要求类别

(工作项类型可以属于“要求类别”或“任务类别”,但不能同时属于这两种类型)。

若要包括以下字段::

  • 积压工作优先级(Scrum)或堆栈排名(敏捷或 CMMI)

    (必须与分配给进程配置文件中的 type=Order 的字段值匹配)
  • 努力(Scrum)、故事点(敏捷)或大小(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" />

在“要求类别”中更改工作项类型的工作流

空值

若要包含所需的元状态映射,如上文所述,用于将工作项类型添加到要求类别。

向任务类别添加工作项类型

若要包括以下字段::

  • 积压工作优先级(Scrum)或堆栈排名(敏捷或 CMMI)
  • 活动 (Scrum 或 Agile) 或纪律 (CMMI)
    (必须与进程配置文件中分配给 type=Activity 的字段值匹配)
  • 剩余工作
    (必须与进程配置文件中分配给 type=RemainingWork 的字段值匹配)
  • 进程配置文件中分配给 type=Team 的区域路径或字段值
  • (可选)原始工时和已完成工时(仅限敏捷和 CMMI)

若要包含必要的元州映射,

  • 将每个工作流状态的开始映射到 type=“Proposed”
  • 将要显示在任务板上的每个中间工作流状态映射到 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 定义删除的工作项类型的颜色代码的元素。

问:是否要使用两项或更多项目组合积压工作?

答: 默认体验支持一级项目组合积压工作。 最多可以添加五个级别,如“向敏捷工具添加项目组合积压工作”中所述

问:是否要添加或更改任务板或产品积压工作上显示的工作项类型?

答: 如果已添加自定义工作项类型,并且想要将该类型添加到积压工作板或任务板,则可以。 你只是不能在两个位置显示它们。 了解如何阅读 “向积压工作项和板添加工作项类型”。