我正在使用以下方法创建签入策略:
using Microsoft.TeamFoundation.VersionControl.Client;
我想从当前工作区或 PendingCheckin 中获取当前 TFS 团队项目名称
有任何想法吗?
我正在使用以下方法创建签入策略:
using Microsoft.TeamFoundation.VersionControl.Client;
我想从当前工作区或 PendingCheckin 中获取当前 TFS 团队项目名称
有任何想法吗?
您可以在待定更改上使用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