我正在将 TFS 2015 Update 3 升级到 2018 Update 2。总体而言,一切正常,但对于一个项目,特别是我无法访问“工作”选项卡。运行流程模板更新向导时,会弹出以下警告和错误。 TFS 认为敏捷模板是最合适的模板。
[Warning] TF400609: Cannot add the action 'Microsoft.VSTS.Actions.StartWork' to the work item type 'Task' because the state 'New' does not exist.
[Warning] TF400609: Cannot add the action 'Microsoft.VSTS.Actions.StopWork' to the work item type 'Task' because the state 'New' does not exist.
[Warning] TF400609: Cannot add the action 'Microsoft.VSTS.Actions.StartWork' to the work item type 'Bug' because the state 'New' does not exist.
[Warning] TF400609: Cannot add the action 'Microsoft.VSTS.Actions.StopWork' to the work item type 'Bug' because the state 'New' does not exist.
[Warning] VS402404: Bugs On TaskBoard: Bug does not have the Microsoft.VSTS.Common.Activity field defined. Some charts will not include these work item types.
[Warning] VS402404: Bugs On TaskBoard: Bug does not have the Microsoft.VSTS.Scheduling.RemainingWork field defined. Some charts will not include these work item types.
[Warning] TF400607: Category 'Microsoft.HiddenCategory' will be overwritten.
[Error] TF400654: Unable to configure Planning Tools. The following element contains an error: Properties. This element defines the properties for this team project. The value of the 'WorkItemTypeIcons' property is invalid. VS403291: Invalid work item type in pair 'Issue=icon_traffic_cone'.
需要采取什么措施才能正确解决此问题?我了解如何创建新的流程模板,但想确认升级后 TFS 2018 中的默认敏捷模板是否损坏以及是否可以修复?
最佳答案
我终于解决了这个问题。为了社区的利益,我在网上没有找到太多信息并发布了下面的解决步骤。
该项目存在两个不寻常的问题。它是一个旧项目,从之前几个版本的 TFS 迁移而来,并且还具有模板流程自定义。这会阻止流程模板自动更新。
解决步骤是:
1) 从 TFS 2018 下载敏捷流程
2) 从“The Problem Project”项目中导出所有必要的定义。这显示了许多错误。例如,未定义 ProcessConfiguration、未定义 FeedbackRequest 等。要获取这些错误,请运行以下命令并查看导出的文件:
witadmin.exe exportcategories /collection:"http://tfsonprem:8080/tfs/FRTS_Projects/" /p:"The Problem Project" /f:"C:\TFSFix\categories.xml"
witadmin.exe exportprocessconfig /collection:"http://tfsonprem:8080/tfs/FRTS_Projects/" /p:"The Problem Project" /f:"C:\TFSFix\processconfig.xml"
witadmin.exe exportwitd /collection:"http://tfsonprem:8080/tfs/DefaultCollection/" /p:"The Problem Project" /f:"C:\TFSFix\bug.xml" /n:"bug"
witadmin.exe exportwitd /collection:"http://tfsonprem:8080/tfs/DefaultCollection/" /p:"The Problem Project" /f:"C:\TFSFix\codereviewrequest.xml" /n:"code review request"
witadmin.exe exportwitd /collection:"http://tfsonprem:8080/tfs/DefaultCollection/" /p:"The Problem Project" /f:"C:\TFSFix\codereviewresponse.xml" /n:"code review response"
witadmin.exe exportwitd /collection:"http://tfsonprem:8080/tfs/DefaultCollection/" /p:"The Problem Project" /f:"C:\TFSFix\Epic.xml" /n:"epic"
witadmin.exe exportwitd /collection:"http://tfsonprem:8080/tfs/DefaultCollection/" /p:"The Problem Project" /f:"C:\TFSFix\feature.xml" /n:"feature"
witadmin.exe exportwitd /collection:"http://tfsonprem:8080/tfs/DefaultCollection/" /p:"The Problem Project" /f:"C:\TFSFix\feedbackrequest.xml" /n:"feedback request"
witadmin.exe exportwitd /collection:"http://tfsonprem:8080/tfs/DefaultCollection/" /p:"The Problem Project" /f:"C:\TFSFix\feedbackresponse.xml" /n:"feedback response"
witadmin.exe exportwitd /collection:"http://tfsonprem:8080/tfs/DefaultCollection/" /p:"The Problem Project" /f:"C:\TFSFix\issue.xml" /n:"issue"
witadmin.exe exportwitd /collection:"http://tfsonprem:8080/tfs/DefaultCollection/" /p:"The Problem Project" /f:"C:\TFSFix\Sharedparameter.xml" /n:"Shared parameter"
witadmin.exe exportwitd /collection:"http://tfsonprem:8080/tfs/DefaultCollection/" /p:"The Problem Project" /f:"C:\TFSFix\SharedStep.xml" /n:"Shared Step"
witadmin.exe exportwitd /collection:"http://tfsonprem:8080/tfs/DefaultCollection/" /p:"The Problem Project" /f:"C:\TFSFix\Task.xml" /n:"Task"
witadmin.exe exportwitd /collection:"http://tfsonprem:8080/tfs/DefaultCollection/" /p:"The Problem Project" /f:"C:\TFSFix\Testcase.xml" /n:"test case"
witadmin.exe exportwitd /collection:"http://tfsonprem:8080/tfs/DefaultCollection/" /p:"The Problem Project" /f:"C:\TFSFix\testplan.xml" /n:"test plan"
witadmin.exe exportwitd /collection:"http://tfsonprem:8080/tfs/DefaultCollection/" /p:"The Problem Project" /f:"C:\TFSFix\testsuite.xml" /n:"test suite"
witadmin.exe exportwitd /collection:"http://tfsonprem:8080/tfs/DefaultCollection/" /p:"The Problem Project" /f:"C:\TFSFix\user story.xml" /n:"user story"
3) 从敏捷流程中导入缺失的定义:
witadmin.exe importwitd /collection:"http://tfsonprem:8080/tfs/DefaultCollection/" /p:"The Problem Project" /f:"C:\TFSFix\Agile\WorkItem Tracking\TypeDefinitions\codereviewrequest.xml"
witadmin.exe importwitd /collection:"http://tfsonprem:8080/tfs/DefaultCollection/" /p:"The Problem Project" /f:"C:\TFSFix\Agile\WorkItem Tracking\TypeDefinitions\codereviewresponse.xml"
witadmin.exe importwitd /collection:"http://tfsonprem:8080/tfs/DefaultCollection/" /p:"The Problem Project" /f:"C:\TFSFix\Agile\WorkItem Tracking\TypeDefinitions\Epic.xml"
witadmin.exe importwitd /collection:"http://tfsonprem:8080/tfs/DefaultCollection/" /p:"The Problem Project" /f:"C:\TFSFix\Agile\WorkItem Tracking\TypeDefinitions\feature.xml"
witadmin.exe importwitd /collection:"http://tfsonprem:8080/tfs/DefaultCollection/" /p:"The Problem Project" /f:"C:\TFSFix\Agile\WorkItem Tracking\TypeDefinitions\feedbackrequest.xml"
witadmin.exe importwitd /collection:"http://tfsonprem:8080/tfs/DefaultCollection/" /p:"The Problem Project" /f:"C:\TFSFix\Agile\WorkItem Tracking\TypeDefinitions\feedbackresponse.xml"
witadmin.exe importwitd /collection:"http://tfsonprem:8080/tfs/DefaultCollection/" /p:"The Problem Project" /f:"C:\TFSFix\Agile\WorkItem Tracking\TypeDefinitions\issue.xml"
witadmin.exe importwitd /collection:"http://tfsonprem:8080/tfs/DefaultCollection/" /p:"The Problem Project" /f:"C:\TFSFix\Agile\WorkItem Tracking\TypeDefinitions\Sharedparameter.xml"
witadmin.exe importwitd /collection:"http://tfsonprem:8080/tfs/DefaultCollection/" /p:"The Problem Project" /f:"C:\TFSFix\Agile\WorkItem Tracking\TypeDefinitions\SharedStep.xml"
4) 导入流程配置和类别,同样来自敏捷流程:
witadmin.exe importcategories /collection:"http://tfsonprem:8080/tfs/DefaultCollection/" /p:"The Problem Project" /f:"C:\TFSFix\Agile\WorkItem Tracking\categories.xml"
witadmin.exe importprocessconfig /collection:"http://tfsonprem:8080/tfs/DefaultCollection/" /p:"The Problem Project" /f:"C:\TFSFix\Agile\WorkItem Tracking\Process\processconfiguration.xml"
5) 步骤 4 显示了阻止导入的其他错误**。这是由于我们对敏捷流程的定制造成的。修复现有流程 UserStory.xml 和 Bug.xml 中的错误并重新导入定义:
witadmin.exe importwitd /collection:"http://tfsonprem:8080/tfs/DefaultCollection/" /p:"The Problem Project" /f:"C:\TFSFix\UserStory.xml"
witadmin.exe importwitd /collection:"http://tfsonprem:8080/tfs/DefaultCollection/" /p:"The Problem Project" /f:"C:\TFSFix\Bug.xml"
还修复进程配置***
6) 重复步骤 4。两个命令都必须运行且没有错误
就是这样。
=======
** UserStory.xml 和 Bug.xml 中缺少一个新字段
<FIELD name="Value Area" refname="Microsoft.VSTS.Common.ValueArea" type="String">
<REQUIRED />
<ALLOWEDVALUES>
<LISTITEM value="Architectural" />
<LISTITEM value="Business" />
</ALLOWEDVALUES>
<DEFAULT from="value" value="Business" />
<HELPTEXT>The type should be set to Business primarily to represent customer-facing issues. Work to change the architecture should be added as a User Story</HELPTEXT>
</FIELD>
*** 有些定制只是我们的孤立案例,可能与社区无关。仅作为记录,流程配置还需要对状态进行一些更新:
<TaskBacklog category="Microsoft.TaskCategory" pluralName="Tasks" singularName="Task" workItemCountLimit="1000">
<States>
<State value="Active" type="Proposed" />
<State value="In QA" type="InProgress" />
<State value="In Review" type="InProgress" />
<State value="Closed" type="Complete" />
</States>
关于TFS 2018 升级错误问题=icon_traffic_cone,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52631488/