1

我正在使用以下方法创建签入策略:

using Microsoft.TeamFoundation.VersionControl.Client;

我想从当前工作区或 PendingCheckin 中获取当前 TFS 团队项目名称

有任何想法吗?

4

2 回答 2

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);
}
于 2013-04-11T13:55:47.050 回答
0

您可以使用它访问它

  BuildDetail.TeamProject

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

于 2013-04-11T12:17:42.510 回答