1

TFS 2010の新しいサーバー側プラグイン機能を使用しようとしています(ここここからこれを開始する方法の基本を理解しました)

これはうまく機能し、TFSイベントを処理する通常のWebサービスの方法よりも何倍も高速です。

しかし、サーバー側のメソッドは非常に文書化されていません。作業項目を取得する方法を理解しましたMicrosoft.TeamFoundation.WorkItemTracking.Server.DataAccessLayerImpl.GetWorkItem((および)を介してGetWorkItemXml

しかし、更新を行うと混乱します。すべての更新メソッドはxmlを取ります。ただし、GetWorkItemXmlから返されるxmlは正しい形式ではありません(「アクション'FIELD'は許可されていません」と表示されます)。

クライアント側のTFSAPIを使用してみましたが、機能します。しかし、それはサーバーへの石鹸の呼び出しをラップしているので、私が望むよりも遅いです。私はすでにサーバー上で実行しているので、その余分な(不要な)通信ステップを必要としないと便利です。

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 に答える