1

我正在尝试使用 TFS 2010 的新服务器端插件功能。(我从这里这里了解了如何开始执行此操作的基础知识)

它工作得很好,比处理 TFS 事件的普通 Web 服务方式快很多倍。

但是服务器端的方法非常非常无证。我已经弄清楚如何检索工作项(通过Microsoft.TeamFoundation.WorkItemTracking.Server.DataAccessLayerImpl.GetWorkItem(和GetWorkItemXml

但是做更新让我很困惑。所有更新方法都采用 xml。但是您从 GetWorkItemXml 返回的 xml 格式不正确(它说“不允许操作 'FIELD')。

我尝试使用客户端 TFS API 并且它有效。但它比我想要的要慢,因为它正在将soap调用打包回服务器。由于我已经在服务器上运行,所以不必有额外的(不需要的)通信步骤会很好。

有没有人对 TFS 有任何服务器端经验?你能给我一个关于如何使用服务器端方法更新工作项的指针吗?

4

1 回答 1

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=””&gt;
  <InsertWorkItem ObjectType=”WorkItem” BypassRules=”True”&gt;
    <ComputedColumns>
      <ComputedColumn Column=”System.RevisedDate”&gt;
    </ComputedColumns>
    <Columns>
      <Column Column=”System.WorkItemType”&gt;
        <Value>Bug</Value>
      </Column>
      <Column Column=”System.AreaId”&gt;
        <Value>40</Value>
      </Column>
      <Column Column=”System.CreatedBy” Type=”String"/>
    </Columns>
    <InsertText FieldName=”Microsoft.VSTS.CMMI.Analysis” FieldDisplayName=”Analysis”&gt;text goes here </InsertText>
  </InsertWorkItem>
</Package>
于 2011-02-07T05:13:15.240 回答