通过代码在Azure DevOps创建Work Item成功但无法在列表中找到
Azure DevOps编程创建工作项后网页端无法找到的问题
我通过以下C#代码在Azure DevOps中以编程方式创建Bug工作项:
var personalAccessToken = "..."; var orgUrl = new Uri("https://dev.azure.com/my-org"); var teamProjectName = "myproj"; VssHttpMessageHandler.DefaultWebProxy = new WebProxy("localhost:18080"); VssConnection connection = new VssConnection(orgUrl, new VssBasicCredential(string.Empty, personalAccessToken)); // Create instance of WorkItemTrackingHttpClient using VssConnection WorkItemTrackingHttpClient witClient = connection.GetClient<WorkItemTrackingHttpClient>(); try { JsonPatchDocument patchDocument = new JsonPatchDocument(); //add fields and their values to your patch document patchDocument.Add( new JsonPatchOperation() { Operation = Operation.Add, Path = "/fields/System.Title", Value = "Test WorkItem" } ); patchDocument.Add( new JsonPatchOperation() { Operation = Operation.Add, Path = "/fields/Microsoft.VSTS.TCM.ReproSteps", Value = "" } ); patchDocument.Add( new JsonPatchOperation() { Operation = Operation.Add, Path = "/fields/Microsoft.VSTS.Common.Priority", Value = "1" } ); patchDocument.Add( new JsonPatchOperation() { Operation = Operation.Add, Path = "/fields/Microsoft.VSTS.Common.Severity", Value = "2 - High" } ); patchDocument.Add( new JsonPatchOperation() { Operation = Operation.Add, Path = "/fields/Microsoft.VSTS.TCM.ReproSteps", Value = "Test Repro Steps" } ); WorkItem result = witClient.CreateWorkItemAsync(patchDocument, teamProjectName, "Bug").Result; Console.WriteLine("Bug Successfully Created: Bug #{0}", result.Id); } catch (AggregateException ex) { Console.WriteLine("Error creating bug: {0}", ex.InnerException.Message); }
代码执行成功,重复运行时会提示同名工作项已存在,但在Azure DevOps网页端的任何列表中都找不到该工作项,请问这是什么原因?
可能的原因及解决方法:
工作项被标记为已删除:Azure DevOps中已删除的工作项默认不会显示在普通查询列表中。你可以创建一个自定义查询,在查询编辑器的“选项”中勾选**“包含已删除的工作项”**,就能找到这些被删除的Bug。重复创建时提示同名存在,是因为已删除的工作项依然会触发项目中“不允许同名工作项”的规则。
查询过滤条件限制:网页端的默认列表(如“我的工作项”“活跃Bug”)通常带有过滤条件,比如只显示状态为“新建”“进行中”的工作项,或者限定了特定的区域路径/迭代路径。你可以检查当前查询的过滤规则,或者直接通过工作项ID(代码输出的
result.Id)在网页端的搜索框中搜索,确认是否存在。账号或项目范围不匹配:确保网页端登录的账号与代码中PAT所属的账号一致,同时确认网页端查看的项目和代码中指定的
teamProjectName是同一个项目,避免跨项目查找导致找不到。代码字段操作冗余:代码中两次对
Microsoft.VSTS.TCM.ReproSteps执行Add操作,虽然最终会以最后一次的值为准,但这种冗余操作可能导致字段初始化异常。建议删除第一次设置空值的那行代码,简化补丁文档。
内容的提问来源于stack exchange,提问作者NibblyPig
相关产品推荐
相关产品推荐

