2017-04-21 27 views
2

我越來越想通過Visual Studio來更改自定義工作項的狀態時,出現以下錯誤:TFS工作項類型定義System.AssignedTo轉換誤差

字段「分配對象」包含值「賽斯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> 
+0

@帕特里克 - MSFT你是什麼意思?顯示名稱有一個空格,並在該字段的Visual Studio呈現中顯示。如果我刪除空格,那麼它表示該值不在支持的值列表中。 –

+0

對不起,誤會。如果您使用其他用戶更改自定義工作項的狀態,結果如何?當你使用你的賬戶改變另一臺機器上VS的狀態時,你是否仍然遇到錯誤?如果是這樣,似乎是一個客戶端問題。嘗試使用清晰的VS和TFS緩存,然後再試一次。 –

+0

@ Patrick-MSFT跨越多臺機器,我們項目上的每個人都在這樣做。另外需要注意的是,這一點從我們從TFS 2012升級到2015年時開始發生。 –

回答

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

已經創造了myside測試,效果很好。上面的自定義工作項類型定義的代碼似乎缺少TRANSITION部分的代碼</FIELDS>。

確保用戶賽斯Denburg在兩個組項目\ TechnicalLeads項目\用戶

您也可以在TFS2015中創建一個新的團隊項目,並使用此自定義工作項類型定義來查看問題是否仍然存在。如果沒有,該問題應該與從TFS 2012到2015的升級有關。確保您有Configure features after an upgrade