2009-10-26 4 views
1

Nous développons des produits en utilisant un outil de conception interne qui stocke des informations dans des fichiers XML. Pour fournir une intégration correcte avec TFS, nous avons également codé un fournisseur qui suit, dans TFS, les opérations d'archivage et d'extraction des utilisateurs pendant qu'ils utilisent le concepteur, sans avoir besoin d'interagir avec Team Explorer. Maintenant, l'exigence est d'ajouter également le workjet lié lors de la vérification des fichiers, j'ai parcouru et parcouru quelques exemples de SDK mais je ne pouvais pas comprendre s'il y avait un moyen d'afficher le même formulaire Windows qui permet à l'utilisateur pour associer le code au workitem à partir du code ou devons-nous implémenter le formulaire complet de Windows à partir du code (extraire et rechercher des workitems, les associer, effectuer le checkin et ainsi de suite). N'importe quelle information serait appréciée parce qu'entre les deux solutions il y a beaucoup de différence en termes de quantité de code que nous devons écrire.Comment montrer le travail associé à partir du code?

Répondre

0

J'ai vérifié avec le conseil MS et il n'y a aucun moyen pour afficher la fenêtre de checkin utilisée par TFS ou l'extension shell sans avoir recours à un code de bas niveau qui n'est pas vraiment sûr.

La seule solution possible est donc d'utiliser TFS Api pour créer un nouveau contrôle/projet C# pour imiter la fenêtre de contrôle TFS.

Cordialement Massimo

1

Voici un code pour vous aider à mettre à jour les éléments de travail. Aussi, essayez [ce lien] [1] pour plus d'informations.

using System; 
using System.Collections.Generic; 
using System.Text; 
using Microsoft.TeamFoundation.Client; 
using Microsoft.TeamFoundation.WorkItemTracking.Client; 


namespace WorkItemTrackingSample2 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      // Connect to the server and the store. 
      TeamFoundationServer tfs = TeamFoundationServerFactory.GetServer("YourTfsServerNameHere"); 
      WorkItemStore workItemStore = (WorkItemStore)tfs.GetService(typeof(WorkItemStore)); 
      // Get a specific WorkItem from the store. 
      // Replace "12345" with a WorkItem ID appropriate for testing. 
      WorkItem workItem = workItemStore.GetWorkItem(12345); 

      // Save the existing Priority so we can restore it later. 
      int oldPriority = (int)workItem.Fields["Priority"].Value; 

      // Set the Priority to an arbitrarily high number. 
      workItem.Fields["Priority"].Value = 9999; 

      // Display the results of this change. 
      if (workItem.IsDirty) 
       Console.WriteLine("The workItem has changed, but has not been saved."); 

      if (workItem.IsValid() == false) 
       Console.WriteLine("The workItem is not valid."); 

      if (workItem.Fields["Priority"].IsValid == false) 
       Console.WriteLine("The workItem's Priority field is not valid."); 

      // Tries to save the invalid WorkItem. 
      try 
      { 
       workItem.Save(); 
      } 
      catch (ValidationException) 
      { 
       Console.WriteLine("The workItem threw a ValidationException."); 
      } 

      // Set the priority to a more reasonable number. 
      if (oldPriority == 1) 
       workItem.Fields["Priority"].Value = 2; 
      else 
       workItem.Fields["Priority"].Value = 1; 

      // If the WorkItem is valid, saves the changed WorkItem. 
      if (workItem.IsValid()) 
      { 
       workItem.Save(); 
       Console.WriteLine("The workItem saved this time."); 
      } 

      // Restore the WorkItem's Priority to its original value. 
      workItem.Fields["Priority"].Value = oldPriority; 
      workItem.Save(); 
     } 
    } 
} 


    [1]: http://msdn.microsoft.com/en-us/library/bb130323(VS.80).aspx 
+0

ne semble pas appliquer à moi ... – massimogentilini

Questions connexes