2011-01-21 110 views
1

我嘗試使用新的服務器端插件功能,2010年TFS更新一個TFS工作項目(我的如何開始從herehere這樣的基礎知識)使用服務器端方法

它效果很好,比處理TFS事件的正常Web服務方式快很多倍。

但服務器端的方法是非常非法的。我已經想通了如何檢索工作項(通過Microsoft.TeamFoundation.WorkItemTracking.Server.DataAccessLayerImpl.GetWorkItem(和GetWorkItemXml

但是這樣的更新是困惑我,所有的更新方法將XML,但你從GetWorkItemXml找回XML是不正確的格式(它說「行動'FIELD'是不允許的)

我已經嘗試過使用客戶端TFS API,它的工作原理,但它比我想要的慢,因爲它將肥皂調用回服務器。因爲我已經在服務器上運行了,所以不必再有那種額外的(不需要的)通信步驟。

有沒有人在那裏有任何TFS的服務器端經驗?你能給我一個關於如何使用服務器端方法更新工作項目的指針嗎?

+0

你用什麼方法來更新工作項目? – 2011-01-24 18:59:03

回答

2

不幸的是,用於工作物品跟蹤的服務器對象模型並不是非常有用。除非你想自己做一些認真的工作,否則使用客戶端對象模型(Microsoft.TeamFoundation.WorkItemTracking.Client.dll)是最好的選擇。

如果您想使用Server OM for Work Items,則必須使用XML包。這些沒有記錄/支持,所以YMMV。這裏的「最佳」的文檔,有關於他們:http://marshalbyrefobject.blogspot.com/search/label/Work%20Item%20Tracking

這裏是一個什麼樣一個看起來像一個示例:

<Package Product=http://your_server:8080/WorkItemTracking/v1.0/ClientService.asmx DisableNotifications=」True」 xmlns=」」> 
    <InsertWorkItem ObjectType=」WorkItem」 BypassRules=」True」> 
    <ComputedColumns> 
     <ComputedColumn Column=」System.RevisedDate」> 
    </ComputedColumns> 
    <Columns> 
     <Column Column=」System.WorkItemType」> 
     <Value>Bug</Value> 
     </Column> 
     <Column Column=」System.AreaId」> 
     <Value>40</Value> 
     </Column> 
     <Column Column=」System.CreatedBy」 Type=」String"/> 
    </Columns> 
    <InsertText FieldName=」Microsoft.VSTS.CMMI.Analysis」 FieldDisplayName=」Analysis」>text goes here </InsertText> 
    </InsertWorkItem> 
</Package>