Как программно получить название командного проекта TFS
Я создаю политику регистрации, используя:
using Microsoft.TeamFoundation.VersionControl.Client;
Я хочу получить текущее имя командного проекта TFS из текущего рабочего пространства или из PendingCheckin
Есть идеи?
2 ответа
Вы можете использовать VersionControlServer.GetTeamProjectForServerPath для ожидающих изменений, таким образом:
var pendingChange = pendingCheckin.GetAllPendingChanges().FirstOrDefault();
if(pendingChange != null) {
return vcs.GetTeamProjectForServerPath(pendingChange.ServerItem);
}
Это также означает, что вы можете определить, охватывают ли ожидающие изменения несколько командных проектов.
Редактировать / расширения:
Теперь, когда я думаю об этом, вам, вероятно, следует использовать локальный путь, поскольку проверяемые файлы могут еще не находиться на сервере (добавляет).
Таким образом, вместо этого вы можете использовать Workspace.GetTeamProjectForLocalPath:
var workspace = pendingCheckin.GetWorkspace();
var pendingChange = pendingCheckin.GetAllPendingChanges().FirstOrDefault();
if(pendingChange != null) {
return workspace.GetTeamProjectForLocalPath(pendingChange.LocalItem);
}
Вы можете получить к нему доступ с
BuildDetail.TeamProject
Найдите сборку в: C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\ReferenceAssemblies\v2.0\Microsoft.TeamFoundation.Build.Client.dll