如何以编程方式获取TFS团队项目名称

时间:2013-04-11 12:14:49

标签: c# tfs checkin-policy

我正在使用以下方式创建签到政策:

using Microsoft.TeamFoundation.VersionControl.Client;

我想从当前工作空间或PendingCheckin

获取当前的TFS团队项目名称

有什么想法吗?

2 个答案:

答案 0 :(得分: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);
}

答案 1 :(得分:0)

您可以使用

访问它
  BuildDetail.TeamProject

在以下位置找到程序集: C:\ Program Files(x86)\ Microsoft Visual Studio 11.0 \ Common7 \ IDE \ ReferenceAssemblies \ v2.0 \ Microsoft.TeamFoundation.Build.Client.dll