2014-09-28 54 views
1

我试图做TFS到我的分贝自动同步一TFS集成.. 所有我米,窗口服务... 对于我已经编码为以下做...TFS集成

DataRow dr = dstSyncWorkItem.Tables["Workitems"].Rows[i]; 
String uri = ConfigurationManager.AppSettings["TfsUri"] + dr["ProCollectionName"]; 
Uri collectionUri = new Uri(uri); 
NetworkCredential myNetCredentials = new NetworkCredential(ConfigurationManager.AppSettings["TfsUsername"], ConfigurationManager.AppSettings["TfsPassword"]); 
ICredentials myCredentials = (ICredentials)myNetCredentials; 

TfsTeamProjectCollection tpc = new TfsTeamProjectCollection(collectionUri, myCredentials); 
WorkItemStore workItemStore = tpc.GetService<WorkItemStore>(); 
Project teamProject = workItemStore.Projects[dr["Project"].ToString()]; 
WorkItemType workItemType = teamProject.WorkItemTypes[dr["Type"].ToString()]; 

WorkItem workItem = new WorkItem(workItemType); 
workItem.Title = dr["Title"].ToString(); 
workItem.Description = dr["Desc"].ToString(); 
workItem.Save(); 

与此以下错误将给予...

TF237124:工作项目还没有准备好保存。

回答

3

您需要验证工作项目,然后才能保存它。呼叫:

ArrayList validation = workItem.Validate(); 

这将确保您所做的任何更改是适当的,并让你的工作项目规则基础上的更改定义的任何附加的状态变化。

如果验证失败,您必须正确处理它们。否则,您可以拨打:

workItem.Save(); 
+0

谢谢你的回答...爱德华。 – 2014-09-28 17:31:41

1

您还未填写所有必填字段。虽然调用Validate()函数会给你一个错误列表,你需要填写区域&迭代路径。与标题一起,这些是唯一的OOB必填字段。

你不会在任何UI中看到它,因为它们默认填充。如果你用“Iteration/myproject /”来填充它们,你应该通过。