更新 Azure DevOps 服务器 2020 中的流程配置

update Process Configuration in Azure DevOps server 2020

我正在将我的 TFS 2018 update 3 更新到 Azure devops Server 最新版本。现在我想迁移到 Azure devops 服务。我正在使用 azure devops 迁移工具,当我启动这个工具时出现错误“Validation Proccess faild”。我读了这篇文章https://docs.microsoft.com/en-us/azure/devops/migrate/migration-processtemplates?view=azure-devops 我在我的过程文件中修复了很多错误,但现在我在最后一步出错了: 第 6 步:符合项目 - 流程配置 以下元素包含错误:PortfolioBacklog(Microsoft.EpicCategory)。 TF400522: 以下值不是有效的工作项类别:Microsoft.EpicCategory。您必须指定一个有效的类别。 以下元素包含错误:PortfolioBacklog(Microsoft.FeatureCategory)。 TF400522: 以下值不是有效的工作项类别:Microsoft.FeatureCategory。您必须指定一个有效的类别。 以下元素包含错误:RequirementBacklog。 TF400522: 以下值不是有效的工作项类别:Microsoft.RequirementCategory。您必须指定一个有效的类别。 以下元素包含错误:TaskBacklog。 TF400522: 以下值不是有效的工作项类别:Microsoft.TaskCategory。您必须指定一个有效的类别。

这是我的进程配置文件:

<?xml version="1.0"?>
<ProjectProcessConfiguration xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <WorkItemColors>
        <WorkItemColor primary="FF009CCC" secondary="FFD6ECF2" name="ProductBacklogItem" />
        <WorkItemColor primary="FF773B93" secondary="FFEEE2F2" name="Feature" />
        <WorkItemColor primary="FFFF7B00" secondary="FFFFD7B5" name="Epic" />
        <WorkItemColor primary="FFF2CB1D" secondary="FFF6F5D2" name="Task" />
        <WorkItemColor primary="FFCC293D" secondary="FFFAEAE5" name="Bug" />
        <WorkItemColor primary="FFFF9D00" secondary="FFFCEECF" name="Code Review Request" />
        <WorkItemColor primary="FFFF9D00" secondary="FFFCEECF" name="Code Review Response" />
        <WorkItemColor primary="FFFF9D00" secondary="FFFCEECF" name="Feedback Request" />
        <WorkItemColor primary="FFFF9D00" secondary="FFFCEECF" name="Feedback Response" />
        <WorkItemColor primary="FFFF9D00" secondary="FFFCEECF" name="Impediment" />
        <WorkItemColor primary="FFFF9D00" secondary="FFFCEECF" name="Shared Step" />
        <WorkItemColor primary="FFFF9D00" secondary="FFFCEECF" name="Test Case" />
     <WorkItemColor primary="FFFF9D00" secondary="FFFCEECF" name="Test Plan" />
     <WorkItemColor primary="FFFF9D00" secondary="FFFCEECF" name="Test Suite" />
     <WorkItemColor primary="FFFF9D00" secondary="FFFCEECF" name="Shared Parameter" />
  </WorkItemColors>
  <TypeFields>
    <TypeField refname="System.AreaPath" type="Team" />
    <TypeField refname="Microsoft.VSTS.Scheduling.RemainingWork" type="RemainingWork" format="{0} h" />
    <TypeField refname="Microsoft.VSTS.Common.StackRank" type="Order" />
    <TypeField refname="Microsoft.VSTS.Scheduling.StoryPoints" type="Effort" />
    <TypeField refname="Microsoft.VSTS.Common.Activity" type="Activity" />
    <TypeField refname="Microsoft.VSTS.Feedback.ApplicationStartInformation" type="ApplicationStartInformation" />
    <TypeField refname="Microsoft.VSTS.Feedback.ApplicationLaunchInstructions" type="ApplicationLaunchInstructions" />
    <TypeField refname="Microsoft.VSTS.Feedback.ApplicationType" type="ApplicationType">
      <TypeFieldValues>
        <TypeFieldValue value="Web application" type="WebApp" />
        <TypeFieldValue value="Remote machine" type="RemoteMachine" />
        <TypeFieldValue value="Client application" type="ClientApp" />
      </TypeFieldValues>
    </TypeField>
  </TypeFields>
  <PortfolioBacklogs>
    <PortfolioBacklog category="Microsoft.EpicCategory" pluralName="Epics" singularName="Epic" workItemCountLimit="1000">
      <States>
        <State value="New" type="Proposed" />
        <State value="Active" type="InProgress" />
        <State value="Resolved" type="InProgress" />
        <State value="Closed" type="Complete" />
      </States>
      <Columns>
        <Column refname="System.WorkItemType" width="100" />
        <Column refname="System.Title" width="400" />
        <Column refname="System.State" width="100" />
        <Column refname="Microsoft.VSTS.Scheduling.Effort" width="50" />
        <Column refname="Microsoft.VSTS.Common.BusinessValue" width="50" />
        <Column refname="Microsoft.VSTS.Common.ValueArea" width="100" />
        <Column refname="System.Tags" width="200" />
      </Columns>
      <AddPanel>
        <Fields>
          <Field refname="System.Title" />
        </Fields>
      </AddPanel>
    </PortfolioBacklog>
    <PortfolioBacklog category="Microsoft.FeatureCategory" pluralName="Features" singularName="Feature" parent="Microsoft.EpicCategory" workItemCountLimit="1000">
      <States>
        <State value="New" type="Proposed" />
        <State value="Active" type="InProgress" />
        <State value="Resolved" type="InProgress" />
        <State value="Closed" type="Complete" />
      </States>
      <Columns>
        <Column refname="System.WorkItemType" width="100" />
        <Column refname="System.Title" width="400" />
        <Column refname="System.State" width="100" />
        <Column refname="Microsoft.VSTS.Scheduling.Effort" width="50" />
        <Column refname="Microsoft.VSTS.Common.BusinessValue" width="50" />
        <Column refname="Microsoft.VSTS.Common.ValueArea" width="100" />
        <Column refname="System.Tags" width="200" />
      </Columns>
      <AddPanel>
        <Fields>
          <Field refname="System.Title" />
        </Fields>
      </AddPanel>
    </PortfolioBacklog>
  </PortfolioBacklogs>
  <RequirementBacklog category="Microsoft.RequirementCategory" pluralName="Stories" singularName="User Story" workItemCountLimit="1000">
    <States>
      <State value="New" type="Proposed" />
      <State value="Active" type="InProgress" />
      <State value="Resolved" type="InProgress" />
      <State value="Closed" type="Complete" />
    </States>
    <Columns>
      <Column refname="System.WorkItemType" width="100" />
      <Column refname="System.Title" width="400" />
      <Column refname="System.State" width="100" />
      <Column refname="Microsoft.VSTS.Scheduling.StoryPoints" width="50" />
      <Column refname="Microsoft.VSTS.Common.ValueArea" width="100" />
      <Column refname="System.IterationPath" width="200" />
      <Column refname="System.Tags" width="200" />
    </Columns>
    <AddPanel>
      <Fields>
        <Field refname="System.Title" />
      </Fields>
    </AddPanel>
  </RequirementBacklog>
  <TaskBacklog category="Microsoft.TaskCategory" pluralName="Tasks" singularName="Task" workItemCountLimit="1000">
    <States>
      <State value="New" type="Proposed" />
      <State value="Active" type="InProgress" />
      <State value="Closed" type="Complete" />
    </States>
    <Columns>
      <Column refname="System.Title" width="400" />
      <Column refname="System.State" width="100" />
      <Column refname="System.AssignedTo" width="100" />
      <Column refname="Microsoft.VSTS.Scheduling.RemainingWork" width="50" />
    </Columns>
    <AddPanel>
      <Fields>
        <Field refname="System.Title" />
      </Fields>
    </AddPanel>
  </TaskBacklog>
  <Weekends />
  <Properties>
    <Property name="BugsBehavior" value="Off" />
  </Properties>
</ProjectProcessConfiguration>

有什么办法可以解决吗?

您的错误意味着您在 Categories.xml 文件中没有指定的值。您需要将这些值添加到文件中并再次尝试导入。我还想向您推荐另一种方法:如果您正在迁移,则不必使用配置过程修复文件,因为所有工作项也都存储在您的数据库中。您可以使用 witaminadmin.exe 将一个空的配置文件导入您的 azure devops 服务器,然后再次使用 witaminadmin.exe,一一删除所有模板,例如 Bug、Spike、Issue 等。然后再次 运行 Azure DevOps 迁移工具,迁移应该开始,当然除非您有其他错误。迁移项目后,您可以使用 Azure Boards Queries 来恢复所有工作项。仅此而已:)自己选择最喜欢的方法。