C# 如何在Tfs中的TeamProject中创建Git存储库?

C# 如何在Tfs中的TeamProject中创建Git存储库?,c#,git,tfs,tfvc,tfs-sdk,C#,Git,Tfs,Tfvc,Tfs Sdk,我正在尝试将TfsServer从基于TFVC的旧服务器(2013)移动到新版本(2018)。我已经弄明白了其中的大部分,但我就是无法通过编程方式创建很多存储库 我一直在尝试使用Microsoft.TeamFoundation.ExtendedClient根据名称列表在特定的TeamProject中创建存储库。我已设法查询所有已存在的存储库: public void CreateTeamProjectRepositories(IEnumerable<string> input) {

我正在尝试将TfsServer从基于TFVC的旧服务器(2013)移动到新版本(2018)。我已经弄明白了其中的大部分,但我就是无法通过编程方式创建很多存储库

我一直在尝试使用Microsoft.TeamFoundation.ExtendedClient根据名称列表在特定的TeamProject中创建存储库。我已设法查询所有已存在的存储库:

public void CreateTeamProjectRepositories(IEnumerable<string> input)
{
      using (var newCollection = new TfsTeamProjectCollection(new Uri(_newUrl)))
      {
           var service = newCollection.GetService<GitRepositoryService>();
      }
}
public void CreateTeamProjectRepositories(IEnumerable输入)
{
使用(var newCollection=newtfstreamprojectcollection(newuri(_newUrl)))
{
var service=newCollection.GetService();
}
}
遗憾的是,关于这一点的文档非常少,事实上,我能找到的唯一一种官方文档是:

我甚至在扩展客户机中找不到该类,我能找到的唯一类是我上面使用的
GitRepositoryService
,但似乎没有关于该类的任何文档

我在网上找到了一些描述如何创建团队项目的非官方资料,但在团队项目中的repo上没有任何内容(远程url,如www.url.com:8080/tfs/TeamProjectCollection/TeamProject/_git/RepoName)


有人对此有经验吗?

我不认为您可以使用旧的TFS类创建Git存储库,但您可以使用新的TFS(在NuGet中提供):


您是在尝试在2013实例上创建存储库,还是在2018实例上创建存储库?我正在2018实例中尝试。我们有一个巨大的工作空间,里面有大量的项目,我想在其中加入一些结构。我正在使用git tfs将TFVC分支转换为本地git回购,但有太多分支,手动创建它们需要花费大量精力,我希望有某种方法可以通过编程实现。@Vaethin我还用
HttpClient
example:)更新了答案
VssConnection connection = new VssConnection(new Uri("http://tfs-server:8080/tfs/{collection}"), new VssCredentials());
GitHttpClient gitClient = connection.GetClient<GitHttpClient>();
GitRepository newRepo = new GitRepository() { Name = "newRepo" };
await gitClient.CreateRepositoryAsync(newRepo, "teamProjectName");
var tfsUrl = "http://tfstest01:8080/tfs/{collection}";
var tfsUri = new Uri(tfsInstance + "/{teamProjectGUID}/_apis/git/repositories/?api-version=1.0");
using (HttpClient client = new HttpClient(new HttpClientHandler() { UseDefaultCredentials = true }))
{
     var data = new { name = "newRepo" };
     var json = JsonConvert.SerializeObject(data);
     var content = new StringContent(json, Encoding.UTF8, "application/json");
     HttpResponseMessage response = null;
     response = client.PostAsync(tfsUri, content).Result;
}