假设我们在 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
。或者您也可以调用 server
或 projectCollection
的 EnsureAuthenticated
.
另请参阅:
关于c# - 获取解决方案本地子文件夹的 TFS 映射文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20565397/