6
votes

Trouver une itération à TFS

Nous relions des itérations dans TFS à un système externe de suivi des projets via toute la société. Dans le passé, nous étions liés à l'aide du processus d'itération dans un projet TFS, mais le problème est que les gens renomment ces espèces d'itération comme progrès des projets et le lien est perdu. Ainsi, après quelques recherches, je pense faire la liaison en utilisant l'itérationID. L'itération dans la Tfswarehouse n'est pas la même chose que l'itération dans la table de travail, et je n'arrive pas à trouver un moyen facile de trouver l'itération d'un sentiment d'itération? Quelqu'un a eu une idée de la manière dont nous pourrions peut-être y parvenir?


0 commentaires

4 Réponses :


0
votes

J'utiliserais le composant logiciel enfichable PowerShell à partir des derniers outils électriques TFS pour cela.

> $tfs = Get-TfsServer <name> -all
> $tfs.WIT.Projects | % { $_.IterationRootNodes } | ft -auto id, path

 Id Path                                       
 -- ----                                 
100 Test-ConchangoV2\Release 1\Sprint 1        
 92 Test-ConchangoV2\Release 1\Sprint 2        
 97 Test-ConchangoV2\Release 1\Sprint 3        
 91 Test-ConchangoV2\Release 1\Sprint 4        
 94 Test-ConchangoV2\Release 1\Sprint 5        
 93 Test-ConchangoV2\Release 1\Sprint 6        
 96 Test-ConchangoV2\Release 2\Sprint 1        
 90 Test-ConchangoV2\Release 2\Sprint 2        
 98 Test-ConchangoV2\Release 2\Sprint 3        
 99 Test-ConchangoV2\Release 3\Sprint 1        
 95 Test-ConchangoV2\Release 3\Sprint 2        
 89 Test-ConchangoV2\Release 3\Sprint 3        


3 commentaires

Merci - téléchargera et jetez un coup d'oeil! Si cela peut être fait à travers PowerShell, il devrait y avoir un moyen de le faire à travers le SDK? Cet outil de liaison est une application ASP.NET afin d'aimer faire dans ASP.NET.


Avait une pièce de théâtre, et ce qui précède ne montre que l'itération qui sont 2 niveaux de profondeur (par exemple, nom de client \ itération de racine \ iterer). Il ne montre pas d'itérations de racines ni d'itérations qui sont des enfants d'enfants ...


est ce 2015 seulement? Je viens de télécharger les derniers TFS Power Tools 2013 daté 2015-04-13 et ces objets ne sont pas disponibles. TFS Power Tools 2015 implique qu'il fonctionnera avec l'équipe Explorer 2015 mais je ne pouvais pas le faire fonctionner.



2
votes

OK - Après avoir creusé d'autres points, vous avez trouvé le code ci-dessous qui itière à toutes les itérations, alors en utilisant un sous-ensemble de cela, je vais obtenir ce dont j'avais besoin :)

using System;
using Microsoft.TeamFoundation.Client;
using Microsoft.TeamFoundation.WorkItemTracking.Client;

namespace TFSIterationList
{
    class Program
    {
        static void Main(string[] args)
        {
            string tfsServer = "tfs";
            string tfsProject = "Project Name";
            TeamFoundationServer tfs = TeamFoundationServerFactory.GetServer(tfsServer);
            WorkItemStore store = new WorkItemStore(tfsServer);
            PrintTreeNodeCount(store, tfsProject);
        }


        private static void PrintTreeNodeCount(WorkItemStore store, string tfsProject)
        {
            int iterationNodeCount = 0;
            NodeCollection rootNodeCollection = store.Projects[tfsProject].IterationRootNodes;
            GetChildNodeCount(rootNodeCollection, ref iterationNodeCount);
            Console.WriteLine(tfsProject + " Iteration nodes : " + iterationNodeCount);
         }

        private static void GetChildNodeCount(NodeCollection nodeCollection, ref int nodeCount)
        {
            nodeCount += nodeCollection.Count;
            for (int i = 0; i < nodeCollection.Count; i++)
            {

                Console.WriteLine(nodeCollection[i].Id + " : " + nodeCollection[i].Path);
                // Console.WriteLine(nodeCollection[i].Name);

                if (nodeCollection[i].ChildNodes.Count > 0)
                {  
                // Recursively walk through the child nodes
                    GetChildNodeCount(nodeCollection[i].ChildNodes, ref nodeCount);
                }
            }
        }

    }
}


1 commentaires

Cela vous donne-t-il réellement l'identifiant d'itération, vous pouvez interroger?



0
votes

Si vous souhaitez imprimer toutes les zones TFS, changez la ligne suivante:

à partir de: NODECollection rootNodNodCollection = stocker.Projects [TFSProject]. Aérationrootnodes;

à: NODECollection RootNodCollection = Store.Projets [TFSPROJECT] .AREAROOTNODES;

Merci pour le code, il a été utile à ma fin.


0 commentaires

0
votes

Ceci peut également être obtenu en utilisant la langue de la requête d'élément de travail ( wiql sur msdn ).

avec WIQL, vous pouvez interroger TFS. J'ai utilisé c #, mais je crois que cela fonctionne avec la plupart / toutes les langues .net. p>

foreach (WorkItem workitem in queryResults)
            {
                Console.WriteLine(workitem.IterationID);
            }


0 commentaires