TFS 工作项验证错误
Posted
技术标签:
【中文标题】TFS 工作项验证错误【英文标题】:TFS WorkItem Validation error 【发布时间】:2015-10-26 22:13:41 【问题描述】:所以情况是这样的:我正在尝试创建一个任务工作项。我必须从dataGridView
获取数据,我想我设法做到了。但是当我尝试保存或验证 WorkItem 时,有趣的部分就来了。无论State
有什么值,验证器在执行wiTask.Validate();
时总是带有InvalidListValue
。我什至尝试对 State 的值进行硬编码,但没有任何反应。有一件事让我有点困扰 - 在 Validation 数组中,错误出现在 Status
属性中,其中实际控件只有 State
可用。这是一些代码和错误位的sn-p:
WorkItem wiTask = new WorkItem(workItemType)
Title = form1.dg_taskView.Rows[rows].Cells["titleDataGridViewTextBoxColumn"].Value.ToString() + " " + form1.tb_details.Text,
Description = form1.dg_taskView.Rows[rows].Cells["descriptionDataGridViewTextBoxColumn"].Value.ToString(),
AreaId = int.Parse(form1.dg_taskView.Rows[rows].Cells["areaIDDataGridViewTextBoxColumn"].Value.ToString()),
AreaPath = form1.dg_taskView.Rows[rows].Cells["areaPathDataGridViewTextBoxColumn"].Value.ToString(),
IterationId = int.Parse(form1.dg_taskView.Rows[rows].Cells["iterationIDDataGridViewTextBoxColumn"].Value.ToString()),
IterationPath = form1.dg_taskView.Rows[rows].Cells["iterationPathDataGridViewTextBoxColumn"].Value.ToString(),
State = form1.dg_taskView.Rows[rows].Cells["stateDataGridViewTextBoxColumn"].Value.ToString()
;
ArrayList result = wiTask.Validate();
wiTask.Save();
var hierarchicalLink = _workItemStore.WorkItemLinkTypes["System.LinkTypes.Hierarchy"];
userStory.WorkItemLinks.Add(new WorkItemLink(hierarchicalLink.ForwardEnd, wiTask.Id));
userStory.Save();
【问题讨论】:
默认情况下,所有任务都将在新建状态下创建,您不能指定其他任何内容。将其留空,TFS 会处理它,将状态设置为 New。您是否更改了该工作项定义的状态流? 我刚刚注释掉了State
行——结果是一样的。状态流是什么意思?
我的意思是任务项的状态和状态转换。默认值与“新建”无关,因此无法从另一个状态开始,然后您可以移至“进行中”等。“状态”是您添加的自定义字段吗?它是否从全局列表中提取值?
Status
是默认字段,绝对不是我创建的(只是在整个项目中运行了字典搜索)。我对这个 WorkItem 所做的一切都是上面的代码 + 在可编辑的 DataGrid
视图中输入值。
调用 Validate 后“结果”ArrayList 中的内容是什么?
【参考方案1】:
事实证明,验证会将有问题的列返回给数组。经过进一步检查,通过指定Assigned to
名称解决了该问题,该名称是项目贡献者列表的一部分。
【讨论】:
以上是关于TFS 工作项验证错误的主要内容,如果未能解决你的问题,请参考以下文章
导入工作项类型定义时,TFS 2017(本地)中的ProvisioningImportEventsCallback