.net 如何以编程方式关闭TFS工作项

.net 如何以编程方式关闭TFS工作项,.net,vb.net,tfs,.net,Vb.net,Tfs,我试图从存储在Excel表单中的遗留问题跟踪系统导入Team Foundation Server中的项目。我成功地循环了Excel文件的行,并且我可以创建新的工作项,但它们始终处于建议状态。如果我尝试将状态更改为Closed,然后调用工作项的Validate方法,我将收到状态属性InvalidListValue{4}上的验证错误 Dim MyProj As Project = store.Projects("MyProject") Dim WIT As WorkItemType

我试图从存储在Excel表单中的遗留问题跟踪系统导入Team Foundation Server中的项目。我成功地循环了Excel文件的行,并且我可以创建新的工作项,但它们始终处于建议状态。如果我尝试将状态更改为Closed,然后调用工作项的Validate方法,我将收到状态属性InvalidListValue{4}上的验证错误

    Dim MyProj As Project = store.Projects("MyProject")
    Dim WIT As WorkItemType = MyProj.WorkItemTypes("Task")
    Dim WorkItem As WorkItem = WIT.NewWorkItem()

    WorkItem.Title = Title
    WorkItem.Description = Description
    WorkItem.History = History
    WorkItem.State = "Closed"
    WorkItem.Fields("Assigned To").Value = AssignedTo
    WorkItem.Fields("Priority").Value = Priority
    WorkItem.Fields("Closed By").Value = ClosedBy
我还尝试了下面的代码,试图保存工作项,将状态更改为closed,然后再次保存,但这似乎也不起作用-当我在My work Items TFS查询下打开它时,仍然建议使用该状态:

        WorkItem.Save()

        WorkItem.State = "Closed"
        WorkItem.Fields("Closed By").Value = ClosedBy
        WorkItem.Save()

有没有其他人尝试过这样的事情并成功了,或者有想法去做?哦,这是一个CMMI任务,我正在尝试创建和完成。我想知道我是否试图跳过CMMI要求的某些活动,但我对这一点还不熟悉,这只是一个猜测。

我想出了如何以编程方式创建和关闭TFS CMMI任务。关键是要完成CMMI过程,可以在中找到,更改状态属性并在每次更改后保存工作项

        ... WorkItem creation tasks
        WorkItem.Fields("Assigned To").Value = AssignedTo
        WorkItem.Fields("Priority").Value = Priority

        'This first Save creates a WorkItem in the Proposed state'
        WorkItem.Save()

        WorkItem.State = "Active"
        Errors = WorkItem.Validate()
        WorkItem.Save()

        WorkItem.State = "Resolved"
        WorkItem.Fields("Resolved By").Value = ClosedBy
        WorkItem.Fields("Resolved Reason").Value = "Just because"
        Errors = WorkItem.Validate()
        WorkItem.Save()

        WorkItem.State = "Closed"
        WorkItem.Fields("Closed By").Value = ClosedBy
        Errors = WorkItem.Validate()
        WorkItem.Save()

为此,您应该使用TFS集成平台


解决此问题的另一种方法是输入所有“流程编辑器”。
使用visual studio从服务器打开“WIT工作项类型”。
从团队项目列表中选择要更改的工作项,并通过删除assignedto=None并将其更改为“必需”来编辑工作流