导入和导出过程配置 [witadmin]

自定义进程配置以修改通过 Team Foundation Server (TFS) web 门户查看的敏捷规划工具页的显示。 一些其他工具需要你将工作流状态映射到元状态映射。

有关如何自定义敏捷规划工具页的概述,请参阅 配置和自定义团队项目的敏捷计划工具

备注

如果你收到错误消息 TF400917,则表示出现了无效配置。使用 witadmin importprocessconfig 将过程配置文件重新导入到团队项目。你将收到解决该错误所需的消息。

要管理团队项目的过程配置,请使用 witadmin 命令行工具导出和导入过程配置 XML 定义文件。 若要了解过程配置的相关信息,请参阅过程配置 XML 元素引用

用于自定义 WIT 对象的进程

  • exportprocessconfig:将过程配置定义导出到 XML 文件或命令提示符窗口。

  • importprocessconfig:导入过程配置定义 XML 文件。

witadmin 命令行工具仅在对本地 TFS 运行时才有效。 若要运行此工具,请打开安装了 Visual Studio 或 团队资源管理器 的命令提示符窗口,然后输入:

cd %programfiles(x86)%\Microsoft Visual Studio 14.0\Common7\IDE

在 32 位版本的 Windows 上,将 %programfiles(x86)% 替换为 %programfiles%

要求

  • 要导出过程配置定义,你必须是团队项目或集合的有效用户。

  • 要导入过程配置定义,你必须是以下安全组的成员:“Team Foundation 管理员”“项目管理员”

有关详细信息,请参阅 Team Foundation Server 权限参考

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

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

参数

参数

描述

/collection:CollectionURLx

必需。 指定集合的 URL。 你必须使用以下格式指定 URI:http://ServerName:Port/VirtualDirectoryName/CollectionName

如果不指定虚拟目录,则必须使用以下格式指定 URI:

http://ServerName:Port/CollectionName。

/p:ProjectName

必需。 指定你要导出或导入过程配置的团队项目。 此团队项目必须在使用 /collection 参数指定的集合中定义。 在指定 /v 切换时,你无需指定团队项目。

/f:FileName

要导出或导入的过程配置的 XML 定义文件的路径和名称。

备注

如果客户端计算机正在运行 Windows Vista,你可能没有特定文件夹的权限。如果你尝试将全局列表导出到没有权限的位置,注册表虚拟化技术会自动重定向导出的文件并将其保存到虚拟存储。有关详细信息,请参见 Microsoft 网站上的以下页面:注册表虚拟化Windows Vista 中的通用文件和注册表虚拟化问题。若要避免此重定向,你可以将文件导出到具有权限的位置。

/e:Encoding

可选。 .NET Framework 2.0 编码格式的名称。 指定的编码将用于导出或导入 XML 数据。 例如,/e utf-7 指定 Unicode (UTF-7) 编码。 如果省略此参数,则 witadmin 将尝试检测编码,并且如果检测失败,将使用 UTF-8。

/v

可选。 验证定义过程配置的 XML,但是不导入定义文件。

/?help

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

备注

安装最新版本的 TFS 会升级现有的团队项目。 如果正在更新已升级的团队项目,请参阅更新升级的团队项目以访问新功能

如果在升级后访问现有测试计划或测试套件时遇到问题,请参阅Update a team project manually to support test management

示例

在每个示例中应用下面的值:

  • 集合的 URL:http://AdventureWorksServer:8080/tfs/DefaultCollection

  • 团队项目:Contoso

  • 服务器网站的端口号:8080

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

你可以为任何快速添加面板添加字段。 例如,下面的示例将**“业务价值”**添加到产品积压工作 (backlog) 面板中。

添加“业务价值”字段后的“积压工作(Backlog)”面板

该面板只显示包含在所选 WIT 的 WIT 定义的 FIELDS 部分中的字段。 例如,如果选择 Bug WIT,则仅显示标题,因为没有为 Bug 定义“业务价值”。 若要将另一个 WIT 添加到面板中,请将它添加到要求类别中,如此处所述。

  1. 如果你不具有团队项目的管理权限,请获取这些权限

  2. 打开已安装 Visual Studio 或团队资源管理器的命令提示符窗口,然后输入:

    cd %programfiles(x86)%\Microsoft Visual Studio 12.0\Common7\IDE
    

    在 32 位版本的 Windows 上,将 %programfiles(x86)% 替换为 %programfiles%。 你可以免费下载团队资源管理器

  3. 导出过程配置文件。

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

    CollectionURL 的一个示例是 http://MyServer:8080/tfs/TeamProjectCollectionName。

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

    例如,下列语法将**“优先级”**元素添加到面板。

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

    提示

    • 使用此索引可查找字段的引用名称。

    • 为针对“要求类别”定义的工作项类型添加所有必需的字段。 那样,在你通过面板添加积压工作 (backlog) 项时,你就可以避免需要打开工作项窗体来填充它们。

  5. 导入过程配置文件。

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

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

如果你自定义测试计划或测试套件的 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 部分中添加它。 请参阅过程配置 XML 元素引用

问题解答

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

**答:**你可以自定义快速添加面板。 配置功能向导将更新你的团队项目,并且你将获取对最新功能的访问权限。

其他更改可能会要求你在更新团队项目时执行某些手动操作。 要了解你可以安全地进行和避免哪些自定义,请参见自定义工作跟踪体验:在你进行自定义之前,了解维护和升级的影响

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

**答:**当你向以下 WIT 添加或移除工作流状态时,你应该考虑更新过程配置以添加或删除相应的元数据映射。

  • 属于要求类别或任务类别的 WIT:元状态映射支持 Agile 计划工具的显示。

  • 属于 Bug 类别的 WIT:用于支持**“我的工作”**工具的元状态映射(Agile 和基于 CMMI 的团队项目)。

  • 测试计划和测试套件:仅当你支持团队成员从基于 Visual Studio 2013.2 或更早版本的测试管理器版本连接到 TFS 时,必须映射对这些 WIT 的工作流的更新。

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

    TFS 升级后出现的应用程序故障错误消息

如何解决过程配置错误?

**答:**当你对团队项目进行以下更改之一时,你将需要更新 WIT、类别或过程配置的定义。 若要避免错误,始终按以下顺序进行更改:(1) WIT,(2)类别,(3) 过程配置。

自定义

更新或验证 WIT 定义

更新或验证过程配置定义

向要求类别添加 WIT

(WIT 可以属于要求类别或任务类别,但不能同时属于这两者。)

若要包含以下字段:

  • 积压工作 (backlog) 优先级 (Scrum) 或堆栈级别(Agile 或 CMMI)

    (必须匹配分配到过程配置文件中的 type=Order 的字段值)

  • 工作量 (scrum)、情景点 (Agile)、或大小 (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" />

更改要求类别中的 WIT 的工作流

不可用

包含如上所述的必需元状态映射用于向要求类别添加 WIT。

向任务类别添加 WIT

若要包含以下字段:

  • 积压工作 (backlog) 优先级 (Scrum) 或堆栈级别(Agile 或 CMMI)

  • 活动(Scrum 或 Agile) 或专业 (CMMI)

    (必须匹配分配到过程配置文件中的 type=Activity 的字段值)

  • 剩余工作

    (必须匹配分配到过程配置文件中的 type=RemainingWork 的字段值)

  • 分配到过程配置文件中的 type=Team 的区域路径或字段值

  • (可选)原始工作和完成的工作(仅限 Agile 和 CMMI)

若要包含必需的元状态映射:

  • 将每个工作流状态的开头映射到 type="Proposed"

  • 将每个你希望在任务版上显示的中间工作流状态映射到 type="InProgress"

  • 将每个工作流状态的结尾映射到 type="Complete"

    你可以仅将一个状态映射到 type="Complete"

包含用于定义与 WIT 相关联的颜色代码的条目。 例如:

<WorkItemColor primary="FFF2CB1D" secondary="FFF6F5D2" name="Task" />

更改任务类别中的 WIT 的工作流

不可用

包含如上所述的必需元状态映射用于向任务类别添加 WIT。

向 Bug 类别添加 WIT(仅限 Agile 和 CMMI)

更改 Bug 类别中的 WIT 的工作流(仅限 Agile 和 CMMI)

不可用

若要包含必需的元状态映射:

  • 将每个工作流状态的开头映射到 type="Proposed"

  • 将每个你希望在“我的工作”上显示的中间工作流状态映射到 type="InProgress"

  • 将每个工作流状态的结尾映射到 type="Complete"

    你可以仅将一个状态映射到 type="Complete"

若要了解详细信息,请参阅使用“我的工作”支持 Bug 更新状态

从要求类别或任务类别移除 WIT

不可用

删除仅与该 WIT 相关联的元状态映射

从团队项目移除 WIT

从类别文件移除 WIT。

移除任何仅与你移除的 WIT 相关联的元状态映射和为你移除的 WIT 定义颜色代码的 WorkItemColor 元素。

问:如何自定义 TWA 中的 Agile 计划工具中出现的其他功能?

**答:**某些自定义可通过用户界面执行。 其他自定义组要编辑过程配置或其他团队项目对象。 相关概述,请参阅配置和自定义团队项目的敏捷计划工具

问:是否要使用两个或两个以上的项目组合积压工作 (backlog)?

**答:**默认值体验支持一个项目组合积压工作 (backlog) 级别。 如向敏捷项目组合管理添加积压工作 (backlog)中所述,你最多可添加五个级别。

问:你是否想添加或更改任务板或产品积压工作 (backlog) 上显示的 WIT?

**答:**如果你已添加自定义 WIT,并希望将其添加到积压工作 (backlog) 或任务板中,则可以这样做。 不能将它们同时显示在两个位置中。 请参阅将工作项类型添加到积压工作和板了解方法。