以DotNet核心以编程方式创建一个新的TFS分支

时间:2019-08-06 17:03:15

标签: tfs azure-devops azure-devops-rest-api tfs-sdk

我正在使用DotNet core 2.2自动化TFS分支过程。我们正在使用TFS 2018。

如何使用C#在TFS源代码管理中创建新分支?

我已经能够在构建队列中执行其他操作。

Microsoft.TeamFoundation.VersionControl.Client.VersionControlServer有一个用于CreateBranch的方法,但是我无法实例化VersionControlServer。旧文档显示这是通过TfsTeamProjectCollection完成的,但是我找不到该类的任何库。

许多MSDN文档中都有过时的或过时的参考。

更新 我发现如果我安装版本14.83.0,则TfsTeamProjectCollection位于MicrosoftTeamFoundationServer.ExtendedClient中,但当前版本为16.143.2。
当我退回到该旧版本时,会遇到与其他软件包版本相关的运行时错误。如果我将它们降级,则存在几个构建错误,因此需要重构。我不能降级,也不必降级。

什么取代了这个?

2 个答案:

答案 0 :(得分:1)

更新

对于我这方面的测试,它可以与.net Framework项目一起正常工作。

但无法与.net Core兼容,甚至无法还原相关的Nuget程序包。


是的,它使用名称空间Microsoft.TeamFoundation.VersionControl.Client和程序集:Microsoft.TeamFoundation.VersionControl.Client

示例代码供您参考:

var server = new TfsTeamProjectCollection(accountUri, new VssBasicCredential(string.Empty, personalAccessToken));
var vcServer = server.GetService<VersionControlServer>();

var changesetId = vcServer.CreateBranch("$/Demo/Main","$/Demo/Dev/Branch", VersionSpec.Latest, null, "Branch Comment", null, null, null);

您可以在 VersionControlServer Class

上查看该课程的官方文档。

要获取此Microsoft.TeamFoundation.VersionControl.Client.dll,已将其移至Nuget package--Microsoft.TeamFoundationServer.ExtendedClient中。

在这里看看这个类似的问题:Where can I find Microsoft.TeamFoundation.VersionControl.Client.dll in Visual Studio 2015 installation?

答案 1 :(得分:0)

您可以使用MicrosoftTeamFoundationServer.ExtendedClient NuGet package,然后将拥有所有的类和方法:

var tfs = new TfsTeamProjectCollection(new Uri("tfs-server-url"));
tfs.Authenticate();
var versionControl = tfs.GetService<VersionControlServer>();
versionControl.CreateBranch("sourcePath","targetPath", VersionSpec.Latest);