Question

Nous développons certains produits en utilisant un outil de conception interne qui stocke les informations dans des fichiers XML. Pour assurer une intégration correcte avec TFS, nous avons également codé un fournisseur qui surveille, dans TFS, les opérations d’archivage et de vérification des utilisateurs s’ils utilisent le concepteur, sans qu’il soit nécessaire d’interagir avec Team Explorer.

Maintenant, l'exigence consiste à ajouter également l'élément de travail associé lors de l'archivage des fichiers. J'ai consulté Google et parcouru des exemples de SDK, mais je ne comprenais pas s'il existait un moyen d'afficher le même formulaire Windows permettant à l'utilisateur de associez le code à l'élément de travail à partir du code ou devons-nous implémenter le formulaire Windows complet à partir du code (récupérer et rechercher des éléments de travail, les associer, effectuer l'archivage, etc.). Toute information serait appréciée, car entre les deux solutions, il y a beaucoup de différence en termes de quantité de code à écrire.

Était-ce utile?

La solution 2

J'ai vérifié auprès de MS consultancy et il n'y a aucun moyen d'afficher la fenêtre d'enregistrement utilisée par TFS ou l'extension du shell sans recourir à un code de bas niveau qui n'est pas vraiment sûr.

La seule solution possible est donc d’utiliser l’API TFS pour créer un nouveau contrôle / projet C # imitant la fenêtre d’archivage TFS.

Cordialement Massimo

Autres conseils

Voici du code pour vous aider à mettre à jour les workItems. Essayez également [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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top