获取解决方案的本地子文件夹的TFS映射文件夹?

时间:2013-12-13 11:27:19

标签: c# tfs mapping directory source-control-explorer

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

我们位于此SubFolder的子文件夹SolutionFolder中。 我们如何编写C#代码来获取此SubFolder的映射路径?

1 个答案:

答案 0 :(得分: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并从那里获取服务器路径:workspace.GetWorkspace().GetServerItemForLocalItem()

要提供凭据,您可以使用接受CredentialsProvider的其他重载之一。默认提供程序是UICredentialsProvider。或者,您也可以拨打serverprojectCollection的{​​{3}}。

另见: