以编程方式创建具有 DotNet 核心的新 TFS 分支
Programmatically create a new TFS branch with DotNet core
我正在使用 DotNet 核心 2.2 自动化 TFS 分支过程。我们正在使用 TFS 2018。
如何使用 C# 在 TFS 源代码管理中创建新分支?
我已经能够对构建进行排队并执行一些其他操作。
Microsoft.TeamFoundation.VersionControl.Client.VersionControlServer
有一个用于 CreateBranch
的方法,但我无法实例化 VersionControlServer
。旧文档显示这是用 TfsTeamProjectCollection
完成的,但我找不到任何带有 class.
的库
许多 MSDN 文档都指向已过时或已弃用的参考资料。
更新
如果我安装版本 14.83.0,我发现 TfsTeamProjectCollection 在 MicrosoftTeamFoundationServer.ExtendedClient,但当前版本是 16.143.2.
当我退回到这个旧版本时,我收到与其他包版本相关的运行时错误。如果我将它们降级,则会出现几个构建错误,因此我需要重构。我不能降级,也不应该降级。
什么取代了它?
您可以使用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);
更新
对于我这边的测试,它与.net 框架项目一起正常工作。
但是.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);
您可以在以下位置查看此 class 的官方文档:VersionControlServer Class
为了得到这个Microsoft.TeamFoundation.VersionControl.Client.dll
,它已经被移进了一个Nuget package--Microsoft.TeamFoundationServer.ExtendedClient。
在这里查看类似的问题:
我正在使用 DotNet 核心 2.2 自动化 TFS 分支过程。我们正在使用 TFS 2018。
如何使用 C# 在 TFS 源代码管理中创建新分支?
我已经能够对构建进行排队并执行一些其他操作。
Microsoft.TeamFoundation.VersionControl.Client.VersionControlServer
有一个用于 CreateBranch
的方法,但我无法实例化 VersionControlServer
。旧文档显示这是用 TfsTeamProjectCollection
完成的,但我找不到任何带有 class.
许多 MSDN 文档都指向已过时或已弃用的参考资料。
更新
如果我安装版本 14.83.0,我发现 TfsTeamProjectCollection 在 MicrosoftTeamFoundationServer.ExtendedClient,但当前版本是 16.143.2.
当我退回到这个旧版本时,我收到与其他包版本相关的运行时错误。如果我将它们降级,则会出现几个构建错误,因此我需要重构。我不能降级,也不应该降级。
什么取代了它?
您可以使用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);
更新
对于我这边的测试,它与.net 框架项目一起正常工作。
但是.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);
您可以在以下位置查看此 class 的官方文档:VersionControlServer Class
为了得到这个Microsoft.TeamFoundation.VersionControl.Client.dll
,它已经被移进了一个Nuget package--Microsoft.TeamFoundationServer.ExtendedClient。
在这里查看类似的问题: