我正在使用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。
当我退回到该旧版本时,会遇到与其他软件包版本相关的运行时错误。如果我将它们降级,则存在几个构建错误,因此需要重构。我不能降级,也不必降级。
什么取代了这个?
答案 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);