当我以编程方式创建一个新错误并将区域路径设置为:
VssBasicCredential credentials = new VssBasicCredential(string.Empty, personalAccessToken);
new JsonPatchOperation()
{
Operation = Operation.Add,
Path = "/fields/System.AreaPath",
Value = "Project"
},
WorkItem bug = await workItemTrackingHttpClient.CreateWorkItemAsync(patchDocument, project, "Bug").ConfigureAwait(false);
我收到此错误:
TF401346:为工作项 -1、字段“System.AreaId”指定的区域/迭代 ID 无效。
我认为这是一个错误,该区域路径存在于ADO中。
问题不是区域路径,而是另一个字段,无论出于何种原因,ADO 都指出区域路径是问题所在。尝试逐一添加每个字段,或单独添加区域字段,看看是否可以解决问题。这是我的代码的精简版本。
JsonPatchDocument patchDocument = new JsonPatchDocument
{
//add fields and their values to your patch document
new JsonPatchOperation()
{
Operation = Operation.Add,
Path = "/fields/System.Title",
Value = $"{tag} for PR #{pullRequest.PullRequestId} changes in build {buildNumber} PlannerBuildArtifact."
},
new JsonPatchOperation()
{
Operation = Operation.Add,
Path = "/fields/System.AreaPath",
Value = "Project\\Planner\\Service"
}
};
try
{
using VssConnection connection = new VssConnection(Uri, this._credentials);
using WorkItemTrackingHttpClient workItemTrackingHttpClient = connection.GetClient<WorkItemTrackingHttpClient>();
return await workItemTrackingHttpClient.CreateWorkItemAsync(patchDocument, Project, "Bug").ConfigureAwait(false);
}
catch (VssException e)
{
_log.LogError("Unable to create work item", e);
throw;
}
如果此解决方法对其他人有帮助 - 错误代码
TF401345
是具有不同分辨率的相同错误消息。
TF401345: Area path for work item -1 is invalid
区域路径不是问题 - 我们将此处的修复确定为Repro Steps字段中的负载过大。该错误消息极具误导性 - 只需修剪太大字段的有效负载并将其分块到 ADO Bug 讨论中即可。对于我们来说,图像捕获溢出了分配的数据缓冲区。