C# TFS 2010工作项尚未准备好保存,但没有验证项

C# TFS 2010工作项尚未准备好保存,但没有验证项,c#,tfs,C#,Tfs,我试图以编程方式保存TFS工作项,但始终会出现异常: TF237124: Work Item is not ready to save 现在,我明白了这告诉我什么-工作项缺少必填字段或类似字段-我的代码通过调用: ArrayList ValidationResult = wi.Validate(); 在保存之前。但是,我的ArrayList在此调用之后不包含任何元素 我尝试使用相同的凭据登录到TFS web界面,并以这种方式创建工作项,效果良好 如何发现我的工作项无法保存的原因?这是我的密

我试图以编程方式保存TFS工作项,但始终会出现异常:

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,我已经更新了标题。宾果!谢谢,我现在看到了我所期望的失败。