我想以编程方式将WorkItems链接到Changesets。
目前我已经从我的c#代码创建工作项并将它们保存到TFS。代码如下:
WorkItem item = new WorkItem(project.WorkItemTypes["CustomItem"]);
item.Fields["CustomField1"].Value = someValue;
item.Fields["CustomField2"].Value = someValue;
item.Fields["CustomField3"].Value = someValue;
item.Validate();
item.Save();
这部分代码运行正常。现在我想将新创建的工作项与现有的变更集相关联。我正在使用以下方式获取变更集:
VersionControlServer service = collection.GetService<VersionControlServer>();
Changeset changeset = service.GetChangeset(123123, true, true);
但是,我只能遍历现有的工作项。我无法为此更改集添加新工作项。有谁知道如何实现这个目标?
答案 0 :(得分:10)
我通过跟踪错误的方法找到了如何做到这一点:
WorkItemStore store = new WorkItemStore(collection);
Changeset changeset = service.GetChangeset(123, true, true);
WorkItem item = new WorkItem(project.WorkItemTypes["CustomItem"]);
item.Links.Add(new ExternalLink(store.RegisteredLinkTypes[ArtifactLinkIds.Changeset], changeset.ArtifactUri.AbsoluteUri));
item.Fields["CustomField1"].Value = someValue;
item.Fields["CustomField2"].Value = someValue;
item.Fields["CustomField3"].Value = someValue;
item.Validate();
item.Save();
我希望这将有助于将来的其他人! :)
基督教