我的任务是在C#应用程序中创建VSTS中的工作项和分支。我已经看到很多创建工作项的示例,我可以使用这些库(Microsoft.VisualStudio.Services.Client& Microsoft.TeamFoundationServer.Client)自己完成。到目前为止,我只看到一个在TFS 2013中创建分支的示例,但由于CreateBranch方法现已过时(根据文档),我无法跟进。我也无法在这些库中找到TeamFoundationServer类。
public void CreateBranchWithComment(string serverUrl, string sourcePath, string targetPath, string comment)
{
var tfs = new TeamFoundationServer(serverUrl);
var vcServer = (VersionControlServer)tfs.GetService(typeof(VersionControlServer));
var changesetId = vcServer.CreateBranch(sourcePath, targetPath, VersionSpec.Latest);
var changeset = vcServer.GetChangeset(changesetId);
changeset.Comment = comment;
changeset.Update();
}
是否仍然可以通过REST API或库创建分支?如果是这样,你能指出我正确的方向吗?
答案 0 :(得分:0)
事实证明,此功能仅可从SOAP方法获得。当我阅读文档时,我错过了TfsTeamProjectCollection类。因为我只专注于REST API,所以我很少关注与SOAP方法和示例相关的任何内容。
根据文档,TeamFoundationServer类自Visual Studio 2010以来已过时,但CreateBranch方法仍可在VersionControlServer类中使用。
要检索VersionControlServer类的实例,必须从TfsTeamProjectCollection实例调用GetService。包括Microsoft.TeamFoundationServer.ExtendedClient Nuget包。
例如:
var server = new TfsTeamProjectCollection(accountUri, new VssBasicCredential(string.Empty, personalAccessToken));
var vcServer = server.GetService<VersionControlServer>();
/*
* See documentation for this class at:
* https://msdn.microsoft.com/en-us/library/microsoft.teamfoundation.versioncontrol.client.versioncontrolserver(v=vs.120).aspx
*/
var changesetId = vcServer.CreateBranch("$/Demo/Main","$/Demo/Dev/Branch", VersionSpec.Latest, null, "Branch Comment", null, null, null);
有关详细信息,请参阅TfsTeamProjectCollection类文档。