2009-07-02 5 views
2

Я реализую веб-интерфейс для системы отслеживания ошибок TFS, поэтому клиенты могут регистрироваться и вводить ошибки. Здесь я хочу добавить поля в соответствии с типом шаблона созданного проекта команды VSTS. Например, командный проект, созданный с использованием шаблона «Agile», имеет другой набор полей, чем другие шаблоны. Поэтому я хочу сначала определить шаблон процесса командного проекта.Как идентифицировать шаблон процесса уже созданного командного проекта с использованием программного обеспечения TFS SDK?

Но «Microsoft.TeamFoundation.WorkItemTracking.Client.Project» не содержит поля для типа шаблона. Итак, как я могу определить тип шаблона процесса командного проекта?

ответ

0

Я не знаю ответа на ваш вопрос, но есть некоторые моменты, чтобы сделать:

  • Я редактировал свой вопрос, чтобы понять, что вы спрашиваете о Process Templates
  • Я также уточнил, что вы «Речь идет о проектах Team Project, а не о файлах проекта Visual Studio. Эти два изменения вместе должны удержать людей от мысли, что вы спрашиваете о вещах, которые появляются, когда вы используете File-> Add New Project.

Наконец, вы должны учитывать, что шаблоны процессов могут быть настроены. Возможно, вы захотите организовать вокруг набора полей, а не шаблон, если вам не нужна информация о самом шаблоне.

2

Прямой ответ - позвонить по телефону GetProjectProperties.

Однако я согласен с Джоном в том, что вы можете решить более сложную проблему, чем это необходимо. Конечно, вы согласитесь, что писать полностью общий клиент WIT сложно. Тем не менее, настройка рабочего элемента очень распространена даже в организациях, которые используют стандартный шаблон процесса. Таким образом, вы, вероятно, не сможете уйти с одноразовым решением, если только вы не захотите его обновлять каждый раз, когда администратор проекта обновляет свой шаблон ошибки.

Есть ли причина, по которой WIWA не работает для вас? (Обратите внимание, что ссылка на скачивание уже недействительна, теперь она является частью более широкой версии TSWA SP1.)

Также помните, что любое такое приложение, доступное для клиентов (не внутреннего персонала), будь то WIWA или что-то, что вы пишете сами , требуется лицензия «внешнего соединителя» в соответствии с моделью CAL TFS.

0

я использовал следующий код:

static void GetProjectTemplate() 
    { 
     string collectionName = "http://<our_host_name>:8080/tfs/defaultcollection/"; 
     TfsTeamProjectCollection tfs = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri(collectionName) 
      , new UICredentialsProvider()); 
     tfs.EnsureAuthenticated(); 
     ICommonStructureService css = (ICommonStructureService)tfs.GetService(typeof(ICommonStructureService)); 
     string[] projects = { "proj1", "proj2", "proj3" }; 
     foreach (string proj in projects) 
     { 
      ProjectInfo projectInfo = css.GetProjectFromName(proj); 
      String projectName; 
      String prjState; 
      int templateId = 0; 
      ProjectProperty[] projectProperties; 


      css.GetProjectProperties(
       projectInfo.Uri, out projectName, out prjState, out templateId, out projectProperties); 
      Console.WriteLine(templateId); 
     } 

     // Locate templateId in the list of Process templates 
     IProcessTemplates processTemplates = (IProcessTemplates)tfs.GetService(typeof(IProcessTemplates)); 
     XmlNode node = processTemplates.GetTemplateNames(); 
     Console.WriteLine(Regex.Replace(node.InnerXml,"<[A-Za-z]","\n$&", RegexOptions.ECMAScript)); 

    } 

... скопирована и модифицирована здесь: http://www.databaseforum.info/30/1083827.aspx

Проблема, я все еще получаю '-1' в качестве шаблона. Означает ли это, что проекты были созданы без шаблона? Кроме того, я изменил название проекта и хоста выше для публикации здесь. (Это законные проекты).

0

Вместо:

Console.WriteLine(templateId); 

использование:

Console.WriteLine(projectProperties[2].Value); 
Смежные вопросы