2016-09-04 15 views
0

私はC#でTFS APIを使用しています。 特定の変更セットに添付された作業項目を変更する必要がありますが、作業項目に関する情報は表示されません。TFS API C#:作業項目を取得するための問題

var workItemStore = (WorkItemStore)tfs.GetService(typeof(WorkItemStore)); 

マイworkItemStoreは常にnullです:

さらに

enter image description here

、私のコード:それぞれのチェンジオブジェクトのインスタンスのプロパティWorkItems

// Connect to server 
     var tfs = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri(ConstTfsServerUri)); 
     tfs.Connect(ConnectOptions.None); 
     var vcs = tfs.GetService<VersionControlServer>(); 

     // Create versionspec's. Example start with changeset 529 
     //VersionSpec versionFrom = VersionSpec.ParseSingleSpec("463450", null); 
     //VersionSpec versionFrom = VersionSpec.ParseSingleSpec("400000", null); 
     VersionSpec versionFrom = VersionSpec.ParseSingleSpec("C529", null); 
     // If you want all changesets use this versionFrom: 
     // VersionSpec versionFrom = null; 
     VersionSpec versionTo = VersionSpec.Latest; 

     // Get Changesets 
     var changesets = vcs.QueryHistory(
      serverPath, 
      VersionSpec.Latest, 
      0, 
      RecursionType.Full, 
      null, 
      versionFrom, 
      versionTo, 
      //Int32.MaxValue, 
      200, 
      true, 
      false 
      ).Cast<Changeset>().ToList(); 

を返す例外:

enter image description here

私の参照は、次のとおりです。

enter image description here たぶん私は必要不可欠の参照を追加するのを忘れましたか?

答えて

0

私は理由を見つけました:それは確かに言及していました!私はまったく同じコードをコピーした新しいソリューションを作成し、NuGetパッケージMicrosoft.TeamFoundationServer.ExtendedClientを使用する場合 は、問題が解決されました:チェンジで enter image description here そしてプロパティWorkItemsは、インスタンスが例外なく値を持つオブジェクト: enter image description here

0

はまた、次のように指定必要コード内のTeamProjectCollection:

var projectCollection = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("http://pttfs1:8080/tfs/collectionname")); 
+0

コレクションの名前は定義されていません。 このパス "http:// pttfs1:8080/tfs /"は完璧に動作します。 –

+0

しかし、将来的にはserverurlを変更する場合に備えて、動的にtfsサーバーURLを取得することをお勧めします – user1432893

関連する問題