我有一个控制台应用程序,它需要从源代码管理(TFS)下载一些文件。但是,使用下面的代码时,VersionControlServer服务为空。因此,我无法下载所需的文件。

TfsTeamProjectCollection tpc = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri(UrlSite));
tpc.EnsureAuthenticated();
bool hasAuthenticated = tpc.HasAuthenticated; // true
var versionControl2 = tpc.GetService<VersionControlServer>(); // null
var buildServer2 = tpc.GetService<IBuildServer>(); // successful initialization
var workItemStore2 = tpc.GetService<WorkItemStore>(); // successful initialization

最佳答案

我做了类似的事情,但实例化TfsTeamProjectCollection略有不同,这在我们环境中的cmdline应用程序中有效:

string collection = @"http://TFSSERVER:8080/tfs/DefaultCollection";
var tfsServer = new Uri(collection);
var tpc = new TfsTeamProjectCollection(tfsServer);
var versionControl2 = tpc.GetService<VersionControlServer>();
var buildServer2 = tpc.GetService<IBuildServer>();
var workItemStore2 = tpc.GetService<WorkItemStore>();

08-27 00:16