我正在使用以下方式创建签到政策:
using Microsoft.TeamFoundation.VersionControl.Client;
我想从当前工作空间或PendingCheckin
获取当前的TFS团队项目名称有什么想法吗?
答案 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