2

假设我们在 TFS 源代码控制中有一个解决方案,它已经映射到本地文件夹SolutionFolder

我们在SubFolderthis 的子文件夹中SolutionFolder。我们如何编写 C# 代码来获取 this 的映射路径SubFolder

4

1 回答 1

5

使用WorkStation.Current获取相关文件夹的信息:

导入以下命名空间:

using Microsoft.TeamFoundation.Client;
using Microsoft.TeamFoundation.VersionControl.Client;

然后使用您可以通过以下方式获取您想要的数据:

var workspace = Workstation.Current.GetLocalWorkspaceInfo(solutionFolder);
if (workspace != null)
{
    var teamProjectUri = workspace.ServerUri;

    // var server = TfsConfigurationServerFactory.GetConfigurationServer(teamProjectUri);
    var projectCollection = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(teamProjectUri);   
    var cssService = projectCollection.GetService<ICommonStructureService4>();
    var project = cssService.GetProjectFromName(solutionName);
}

从那里您也可以轻松地获取工作区,然后从那里获取服务器路径:workspace.GetWorkspace().GetServerItemForLocalItem()

要提供凭据,您可以使用接受CredentialsProvider. 默认提供程序是UICredentialsProvider. 或者您也可以调用serverorprojectCollectionEnsureAuthenticated.

也可以看看:

于 2013-12-13T11:46:08.353 回答