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

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

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

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

最佳答案

使用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 。或者您也可以调用 serverprojectCollectionEnsureAuthenticated .

另请参阅:

关于c# - 获取解决方案本地子文件夹的 TFS 映射文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20565397/

相关文章:

java - 使用 Mapstruct 作为 JOOQ 的 RecordMapper

java - Mapstruct:如何将两个字段合并为一个

c# - MainWindow 打开两次(StartupUri、App、Loadscreen)

c# - 使用具有复杂类型的设置

linux - 在 linux 中使用 TFS 同步文件夹

tfs - 从看板 View 中的燃尽图中删除周末(TFS 2012 - Scrum 2.0)

c# - JSON.Net 将内部对象转换为 C# 模型

c# - 是否需要在 CollectionChanged 事件中检查 NotifyCollectionChangedAction?

TFS API BranchObjectCreated 事件不会触发

python - 对实值张量进行分桶