如何基于TFS分支查询WorkItem

本文关键字:查询 WorkItem 分支 TFS 何基于 | 更新日期: 2023-09-27 18:00:58

我正在开发一个工具来显示特定项目分支的所有代码审查请求。现在,项目和相应的分支列表正在正确填充。但是,当我尝试在WorkItemStore上为TeamProjectCollection运行查询时,我认为我引用的分支不正确。

以下是我加载分支信息的方式,在代码的前面:

var projName = ddlProjects.SelectedItem.ToString();
var vcs = tfs.GetService<VersionControlServer>();
var bos = vcs.QueryRootBranchObjects(RecursionType.Full);
var branchList = bos.Select(branch => branch.Properties.RootItem.Item).ToList();
var finalList = branchList.Where(b => b.Contains(projName)).ToList();
ddlBranches.DataSource = finalList;

以下是我如何运行抛出错误的查询:

using (var tfs = new TfsTeamProjectCollection(new Uri(@"http://myTeamProjectCollectionURL")))
{
     var workItemStore = tfs.GetService<WorkItemStore>();
     var query = string.Format(@"SELECT *
                                 FROM WorkItems
                                 WHERE [System.TeamProject] = '{0}'
                                 and [System.IterationPath] under '{1}'
                                 and [System.WorkItemType] = 'Code Review Request'", ddlProjects.SelectedItem.ToString(), ddlBranches.SelectedItem.ToString());
     WorkItemCollection workItemCollection = workItemStore.Query(query);

以下是查询产生的错误:

TF51011: The specified iteration path does not exist. The error is caused by «'$/ProjectName/ReleaseBranch1.0'».

同样,我认为我在查询中引用的分支不正确。有人知道正确的方法吗?提前感谢您提供的任何帮助!

如何基于TFS分支查询WorkItem

工作项是在团队项目下创建的,而不是在项目下。因此,默认情况下没有对应于分支的字段。

为了实现您想要的,您需要自定义一个字段来指定分支路径,然后您就有了这样的查询。