TFS工作项类型定义System.AssignedTo转换错误

时间:2017-04-21 16:40:10

标签: visual-studio tfs tfs-workitem

尝试通过Visual Studio更改自定义工作项的状态时出现以下错误:

  

字段'Assigned To'包含值'Seth Denburg< Project \ SDenburg>'这不在支持的值列表中。

在状态转换期间,来自另一个字段的值将复制到System.AssignedTo字段。此错误阻止我在通过Visual Studio签入期间解析相关工作项。

我注意到以下备选方案允许我成功更改状态,这有助于指出问题所在:

  • 在Web界面中更改工作项的状态。此处不显示任何错误。
  • 在Visual Studio中转换之前从正在复制的字段中重新输入用户名。
  • 在Visual Studio中转换后,在System.AssignedTo字段中重新输入用户名。

以下是我认为与此问题相关的自定义工作项类型定义中的状态,转换和字段的子集:

<FIELD name="Assigned To" refname="System.AssignedTo" type="String" syncnamechanges="true" reportable="dimension">
    <ALLOWEXISTINGVALUE />
    <VALIDUSER group="Project\Users" />
</FIELD>

<FIELD name="Lead" refname="Project.Tfs.Lead" type="String" reportable="dimension">
    <ALLOWEXISTINGVALUE />
    <DEFAULT from="value" value="Seth Denburg" />
    <REQUIRED />
    <VALIDUSER group="Project\TechnicalLeads" />
</FIELD>

<STATE value="Pending">
  <FIELDS>
    <FIELD refname="System.AssignedTo">
      <VALIDUSER />
    </FIELD>
  </FIELDS>
</STATE>

<TRANSITION from="Active" to="Pending">
  <REASONS>
    <DEFAULTREASON value="Completed" />
  </REASONS>
  <FIELDS>
    <FIELD refname="System.AssignedTo">
      <COPY from="field" field="Project.Tfs.Lead" />
    </FIELD>
  <ACTIONS>
    <ACTION value="Microsoft.VSTS.Actions.Checkin" />
  </ACTIONS>
</TRANSITION>

2 个答案:

答案 0 :(得分:2)

问题最终是Project.Tfs.Lead字段没有syncnamechanges="true"。以下是更改后字段的外观:

<FIELD name="Lead" refname="Project.Tfs.Lead" type="String" syncnamechanges="true" reportable="dimension">
    <ALLOWEXISTINGVALUE />
    <DEFAULT from="value" value="Seth Denburg" />
    <REQUIRED />
    <VALIDUSER group="Project\TechnicalLeads" />
</FIELD>

进行更改时,请确保使用witadmin changefield之类的命令,因为需要跨工作项类型定义更新字段。导入xml更改将不起作用,并将为您提供警告TF248017。

witadmin changefield /collection:https://project.com/tfs/projectCollection/ /n:Project.Tfs.Lead /syncnamechanges:true

以下是MSDN需要进行此更改的原因:

  

您必须手动启用任何自定义工作项的同步   您在以前版本的Visual Studio中创建的字段   Team Foundation Server和用于分配人名的那些   参考Active Directory。您必须为每个启用同步   包含自定义的每个团队项目集合的字段   字段。

https://msdn.microsoft.com/en-us/library/dd286562(v=vs.100).aspx

答案 1 :(得分:1)

在myside创建了一个测试,效果很好。上面的自定义工作项类型定义的代码似乎缺少</FIELDS&gt;过渡部分。

确保用户 Seth Denburg 同时位于 Project \ TechnicalLeads Project \ Users 组中。

您还可以在TFS2015中创建新的团队项目,并使用此自定义工作项类型定义来查看问题是否仍然存在。如果没有,该问题应该与从TFS 2012升级到2015年有关。请确保您有Configure features after an upgrade