Как показать ассоциированный рабочий элемент из кода?

StackOverflow https://stackoverflow.com/questions/1624763

  •  06-07-2019
  •  | 
  •  

Вопрос

Мы разрабатываем какой-то продукт, используя внутренний инструмент проектирования, который хранит информацию в XML-файлах.Чтобы обеспечить надлежащую интеграцию с TFS, мы также запрограммировали поставщика, который отслеживает в TFS операции регистрации и оформления заказа от пользователей во время использования конструктора без какой-либо необходимости взаимодействовать с Team Explorer.

Теперь требуется добавить также связанный workitem при проверке файлов, я погуглил и просмотрел некоторые образцы SDK, но я не смог понять, есть ли способ показать ту же форму Windows, которая позволяет пользователю связывать код с workitem из кода, или мы должны реализовать полную форму Windows из кода (извлекать и искать workitems, связывать их, выполнять проверку и так далее).Любая информация была бы признательна, потому что между этими двумя решениями существует большая разница в том, сколько кода нам нужно написать.

Это было полезно?

Решение 2

Я проверил в MS consultancy, и нет способа показать окно проверки, используемое TFS или расширением оболочки, не прибегая к низкоуровневому коду, который на самом деле небезопасен.

Таким образом, единственным возможным решением является использование TFS Api для создания нового элемента управления / проекта C #, имитирующего окно проверки TFS.

С уважением Massimo

Другие советы

Вот некоторый код, который поможет с обновлением workItems. Кроме того, попробуйте [эту ссылку] [1] для получения дополнительной информации.

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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top