我正在开发一个工具来显示特定项目分支的所有代码审核请求。现在,项目和相应的分支列表正确填充。但是,当我尝试在TeamProjectCollection的WorkItemStore上运行查询时,我相信我错误地引用了分支。
以下是我在代码前面加载分支信息的方法:
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'».
同样,我假设我在查询中错误地引用了分支。有谁知道这样做的正确方法?提前感谢您提供的任何帮助!
答案 0 :(得分:1)
工作项是在团队项目下创建的,而不是项目。因此默认情况下没有一个字段对应于分支。
要实现您的目标,您需要自定义字段以指定分支路径,然后您就有了这样的查询。