C# TFS 2010工作项尚未准备好保存,但没有验证项
我试图以编程方式保存TFS工作项,但始终会出现异常:C# TFS 2010工作项尚未准备好保存,但没有验证项,c#,tfs,C#,Tfs,我试图以编程方式保存TFS工作项,但始终会出现异常: TF237124: Work Item is not ready to save 现在,我明白了这告诉我什么-工作项缺少必填字段或类似字段-我的代码通过调用: ArrayList ValidationResult = wi.Validate(); 在保存之前。但是,我的ArrayList在此调用之后不包含任何元素 我尝试使用相同的凭据登录到TFS web界面,并以这种方式创建工作项,效果良好 如何发现我的工作项无法保存的原因?这是我的密
TF237124: Work Item is not ready to save
现在,我明白了这告诉我什么-工作项缺少必填字段或类似字段-我的代码通过调用:
ArrayList ValidationResult = wi.Validate();
在保存之前。但是,我的ArrayList在此调用之后不包含任何元素
我尝试使用相同的凭据登录到TFS web界面,并以这种方式创建工作项,效果良好
如何发现我的工作项无法保存的原因?这是我的密码:
// get a reference to the team project collection (authenticate as generic service account)
using (var tfs = new TfsTeamProjectCollection(tfsuri, new System.Net.NetworkCredential("My_User", "password")))
{
tfs.EnsureAuthenticated();
var workItemStore = GetWorkItemStore(tfs);
// create a new work item
WorkItem wi = new WorkItem(GetWorkItemType(type, workItemStore));
{
//Values are supplied as a KVP - Field Name/Value
foreach (KeyValuePair<string,string> kvp in values)
{
if (wi.Fields.Contains(kvp.Key))
{
wi.Fields[kvp.Key].Value = kvp.Value;
}
}
ValidationResult = wi.Validate();
}
if (ValidationResult.Count == 0)
{
wi.State = wi.GetNextState("Microsoft.VSTS.Actions.Checkin");
wi.Save();
return wi.Id;
}
else
{
return 0;
}
}
}
//获取对团队项目集合的引用(作为通用服务帐户进行身份验证)
使用(var tfs=new tfstreamprojectcollection(tfsuri,new System.Net.NetworkCredential(“我的用户”、“密码”))
{
tfs.确保重新验证();
var workItemStore=GetWorkItemStore(tfs);
//创建新的工作项
WorkItem wi=新的WorkItem(GetWorkItemType(type,workItemStore));
{
//值作为KVP-字段名称/值提供
foreach(值中的KeyValuePair kvp)
{
if(wi.Fields.Contains(kvp.Key))
{
wi.Fields[kvp.Key].Value=kvp.Value;
}
}
ValidationResult=wi.Validate();
}
if(ValidationResult.Count==0)
{
wi.State=wi.GetNextState(“Microsoft.VSTS.Actions.Checkin”);
wi.Save();
返回wi.Id;
}
其他的
{
返回0;
}
}
}
在更改工作项的状态之前,您正在验证该工作项。转换到新状态可能会导致处理工作项模板操作/规则。这些可能是更改某些字段的值和/或向字段添加新规则,这将导致以前有效的数据无效
从打开状态移动到关闭状态可能需要有人填写一个“Review”字段(例如)——如果该字段为空,则不能转换
在状态更改后尝试验证,看看是否有任何失败。2010,我已经更新了标题。宾果!谢谢,我现在看到了我所期望的失败。