【问题标题】:Updating a TFS Work Item using server side methods使用服务器端方法更新 TFS 工作项
【发布时间】:2011-02-07 13:13:15
【问题描述】:

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

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

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

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

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

是否有人对 TFS 有任何服务器端经验?你能告诉我如何使用服务器端方法更新工作项吗?

【问题讨论】:

  • 您使用什么方法来更新工作项?

标签: tfs tfs-sdk


【解决方案1】:

不幸的是,用于工作项跟踪的服务器对象模型不是很有用。除非您想自己做一些繁重的工作,否则使用客户端对象模型 (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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-03
    • 2012-05-21
    • 1970-01-01
    • 2011-08-29
    • 1970-01-01
    • 1970-01-01
    • 2016-03-12
    相关资源
    最近更新 更多