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

Visual studio TFS工作项类型定义System.AssignedTo转换错误,visual-studio,tfs,tfs-workitem,Visual Studio,Tfs,Tfs Workitem,尝试通过Visual Studio更改自定义工作项的状态时,我遇到以下错误: 字段“Assigned To”包含不在支持值列表中的值“Seth Denburg” 在状态转换期间,另一个字段的值被复制到System.AssignedTo字段。此错误阻止我在通过Visual Studio签入期间解析相关工作项 我注意到以下备选方案允许我成功更改状态,这有助于指出问题所在: 在web界面中更改工作项的状态。此处不显示任何错误 在Visual Studio中转换之前,在要从中复制的字段中重新输入用户名

尝试通过Visual Studio更改自定义工作项的状态时,我遇到以下错误:

字段“Assigned To”包含不在支持值列表中的值“Seth Denburg”

在状态转换期间,另一个字段的值被复制到
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>

在myside中创建了一个测试,运行良好。上面自定义工作项类型定义的代码似乎缺少过渡部分的

确保用户Seth Denburg同时位于组Project\Technicalleds和组Project\Users中


您还可以在TFS2015中创建新的团队项目,并使用此自定义工作项类型定义查看问题是否仍然存在。如果不是,问题应与2012年至2015年的TFS升级有关。确保你有

问题最终是字段
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>
以下是MSDN需要进行此更改的原因:

必须手动启用任何自定义工作项的同步 在Visual Studio早期版本中创建的字段 Team Foundation Server,用于分配人名 参考Active Directory。必须为每个应用程序启用同步 包含自定义项目的每个团队项目集合的字段 田地


@Patrick MSFT你什么意思?显示名称有一个空格,显示在该字段的Visual Studio渲染中。如果我删除了空格,则表示该值不在支持的值列表中。很抱歉误解。如果使用其他用户更改自定义工作项的状态,结果会是什么?当您在另一台机器上使用您的帐户更改VS中的状态时,是否仍会出现错误?如果是这样,这似乎是客户的问题。请尝试清除VS和TFS缓存,然后再试一次。@Patrick MSFT我们项目中的每个人都会在多台机器上遇到这种情况。另一件需要注意的事情是,这是在我们从2012年TFS升级到2015年时开始发生的。
witadmin changefield /collection:https://project.com/tfs/projectCollection/ /n:Project.Tfs.Lead /syncnamechanges:true