使用 Microsoft.TeamFoundation.Client 删除 VSTS/TFS 中的迭代
Removing iteration in VSTS/TFS using Microsoft.TeamFoundation.Client
我使用此代码以编程方式在 VSTS/TFS 上创建新迭代:
var tfs = new TfsTeamProjectCollection(uri, tfsCredential);
var service = tfs.GetService<ICommonStructureService>();
var iterationRoot = service.GetNodeFromPath("\TeamProjectName\Iteration");
var iteration = service.CreateNode("Sprint 1", iterationRoot.Uri);
现在我想删除一个迭代,但是 ICommonStructureService
上没有相应的方法。奇怪的是有一个名为 GetDeletedNodesXml()
.
的方法
我明白了!我在这里假设您有一些方法来检索迭代。
var tfs = new TfsTeamProjectCollection(uri, tfsCredential);
var service = tfs.GetService<ICommonStructureService>();
// TODO var iteration = GetIteration();
var projectInfo = service.GetProjectFromName(projectName)
var nodes = service.ListStructures(projectInfo.Uri);
service.DeleteBranches(iteration.Id, nodes[0].Uri);
关键是传入 ID 而不是路径。 TFS 想要检索表示为 ID 的工件 URLs。 DeleteBranches
的第二个参数是迭代根的工件 URL,它是通过调用 ICommonStructureService
的 ListStructures
并在那里取第一个元素(这是一种讨厌的恕我直言,但我不知道更好的方法)。
我使用此代码以编程方式在 VSTS/TFS 上创建新迭代:
var tfs = new TfsTeamProjectCollection(uri, tfsCredential);
var service = tfs.GetService<ICommonStructureService>();
var iterationRoot = service.GetNodeFromPath("\TeamProjectName\Iteration");
var iteration = service.CreateNode("Sprint 1", iterationRoot.Uri);
现在我想删除一个迭代,但是 ICommonStructureService
上没有相应的方法。奇怪的是有一个名为 GetDeletedNodesXml()
.
我明白了!我在这里假设您有一些方法来检索迭代。
var tfs = new TfsTeamProjectCollection(uri, tfsCredential);
var service = tfs.GetService<ICommonStructureService>();
// TODO var iteration = GetIteration();
var projectInfo = service.GetProjectFromName(projectName)
var nodes = service.ListStructures(projectInfo.Uri);
service.DeleteBranches(iteration.Id, nodes[0].Uri);
关键是传入 ID 而不是路径。 TFS 想要检索表示为 ID 的工件 URLs。 DeleteBranches
的第二个参数是迭代根的工件 URL,它是通过调用 ICommonStructureService
的 ListStructures
并在那里取第一个元素(这是一种讨厌的恕我直言,但我不知道更好的方法)。