2013-04-11 2 views
1

Я создаю чек-за политики с помощью:Как Programatically получить TFS Team Название проекта

using Microsoft.TeamFoundation.VersionControl.Client; 

Я хочу, чтобы получить текущий TFS Team Название проекта из текущего рабочего пространства или PendingCheckin

Любой идеи?

+1

Как вы хотите использовать его? Рабочее пространство и checkin могут охватывать проекты ... – bryanmac

+0

Я работаю над политикой регистрации, которая копирует любой файл, который в настоящее время проверяется, из локальной рабочей области разработчика в другое место. Это место будет отличаться в зависимости от того, какой Team Project принадлежит – jpsnow72

+0

. Я не понимал, что регистрация может сканировать несколько проектов. Если это помогает, у меня всегда будет другое рабочее пространство для каждого командного проекта, но я мог бы сделать это для каждого проекта, если бы мог каким-то образом получить список всех проектов, в которые файл проверяется. – jpsnow72

ответ

2

вы можете использовать VersionControlServer.GetTeamProjectForServerPath на ожидании изменения таким образом:

var pendingChange = pendingCheckin.GetAllPendingChanges().FirstOrDefault(); 
if(pendingChange != null) { 
    return vcs.GetTeamProjectForServerPath(pendingChange.ServerItem); 
} 

Это также означает, что вы можете обнаружить, если в ожидании изменений в нескольких командных проектах.


Edit/расширения:

Теперь, когда я думаю об этом, вы, вероятно, следует использовать локальный путь, так как файлы, вы проверяете в не может быть на сервере еще (добавляет).

Таким образом, вы можете использовать вместо Workspace.GetTeamProjectForLocalPath:

var workspace = pendingCheckin.GetWorkspace(); 
var pendingChange = pendingCheckin.GetAllPendingChanges().FirstOrDefault(); 
if(pendingChange != null) { 
    return workspace.GetTeamProjectForLocalPath(pendingChange.LocalItem); 
} 
0

Вы можете получить доступ к нему с

BuildDetail.TeamProject 

Найти сборку в: C: \ Program Files (x86) \ Microsoft Visual Studio 11.0 \ Common7 \ IDE \ ReferenceAssemblies \ v2.0 \ Microsoft.TeamFoundation. Build.Client.dll

+0

Это для данной сборки (которая связана с проектом). Я думаю, что он просит дать рабочее пространство или в ожидании проверки (которая может охватывать проекты). – bryanmac

+0

И я не уверен, где взять файл Microsoft.TeamFoundation.Build.Server.dll. Похоже, что мне не хватает – jpsnow72

Смежные вопросы