Frage

Wir entwickeln einige Produkte ein internes Design-Tool, die Informationen in XML-Dateien gespeichert werden. Damit eine ordnungsgemäße Integration mit TFS haben wir codiert auch einen Anbieter, der in TFS, Ein- und Auschecken Betrieb von Benutzern verfolgt, während sie den Designer verwenden, ohne dass mit dem Team Explorer zu interagieren.

Jetzt ist die Forderung, auch die dazugehörige workitem hinzuzufügen, wenn in Dateien überprüft, ich um gegoogelt habe und einige SDK Proben durchsucht, aber ich war nicht in der Lage zu verstehen, wenn es eine Möglichkeit ist, das gleiche Windows-Formular zu zeigen, dass Benutzer ermöglichen, Associate Code aus dem Code WORKITEM oder müssen wir die volle Fenster aus Code bilden implementieren (abzurufen und Workitems suchen, verbinden sie, die checkin ausführen und so weiter). Jede Info würde geschätzt werden, da zwischen den beiden Lösung gibt einen großen Unterschied in der Bezeichnung der ist, wie viel Code, den wir brauchen, um zu schreiben.

War es hilfreich?

Lösung 2

Ich habe mit MS-Beratung überprüft, und es gibt keine Möglichkeit, die checkin Fenster von TFS oder der Shell-Erweiterung verwendet, um zu zeigen, ohne auf einem niedrigen Pegel Code zurückgreifen, die nicht wirklich sicher ist.

So einzig mögliche Lösung ist es, die TFS Api zu verwenden, um ein neues C # control / Projekt zu erstellen, die TFS checkin Fenster zu imitieren.

Viele Grüße Massimo

Andere Tipps

Hier ist ein Code mit der Aktualisierung von Workitems zu helfen. Versuchen Sie auch, [Link] [1] für weitere Informationen.

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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top