2016-09-04 4 views
0

Ich benutze TFS API über C#. Ich muss Arbeitsaufgaben ändern, die an bestimmte Änderungssets angehängt sind, jedoch kann ich keine Informationen über Arbeitselemente anzeigen.TFS API C#: Problem zu Arbeitsaufgaben

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

Mein workItemStore ist immer null:

enter image description here

Außerdem meinen Code:

// 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(); 

kehrt Ausnahme in Immobilien WorkItems für jede Instanz des changeset Objekt:

enter image description here

Meine Referenzen sind:

enter image description here Vielleicht habe ich vergessen habe eine grundlegende Referenz hinzufügen?

Antwort

0

Ich fand den Grund: Es war in Referenzen sicher! Wenn ich eine neue Lösung, kopiert erstellt genau der gleiche Code und verwenden NuGet Paket Microsoft.TeamFoundationServer.ExtendedClient wurde Problem behoben: enter image description here Und Eigenschaft WorkItems in changeset Instanzen Wert-Objekte ohne Ausnahme haben: enter image description here

0
Auch

, müssen Sie angeben, Die TeamProjectCollection in Ihrem Code:

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

Es funktioniert ohne Definition der Name der Sammlung. Dieser Pfad "http: // pttfs1: 8080/tfs /" funktioniert einwandfrei. –

+0

Dennoch würde ich empfehlen, die tfs-Server-URL dynamisch zu bekommen, nur für den Fall, dass Sie in Zukunft Serverurl ändern würden – user1432893

Verwandte Themen