添加优先级为TFS的任务,分配给使用c#

时间:2016-12-21 18:53:51

标签: c# tfs

我正在尝试使用c#代码创建一个tfs任务。我可以使用以下代码添加任务。 但我无法通过此添加assignto,keywords,priority等。我没有在workItemType对象中找到相关属性。

我尝试了字段[“关键字”]等,但它对我不起作用。请指点

private static readonly Uri TfsServer = new Uri("my tfs url");
        static readonly TfsTeamProjectCollection tpc = new TfsTeamProjectCollection(TfsServer);
        static readonly WorkItemStore workItemStore = tpc.GetService<WorkItemStore>();
        static readonly Project teamProject = workItemStore.Projects["my project name"];
        static readonly WorkItemType workItemType = teamProject.WorkItemTypes["Task"];

WorkItem tfsTask = new WorkItem(workItemType)
            {
                Title = "Test Title",
                //assignedto,
                State = "Proposed",
                //substatus ="Not Started",
                AreaPath = @"my path",
                IterationPath = @"my iteration path",
                //Keywords ="my keyword",
                //prioity=3

                Description = "newVcDescription"
           };

          tfsTask.Save();

2 个答案:

答案 0 :(得分:2)

因此,并非所有tfs的标准属性都可以这样调用。在C#中不是100%肯定,但在powershell中,我必须做这样的事情。

$proj = $ws.Projects["Scrum Test"]
$ProductBacklogWorkItem=$proj.WorkItemTypes["Product Backlog Item"]
$pbi=$ProductBacklogWorkItem.NewWorkItem()


// stadard attribute
$pbi.Description = $SRLongDescription

// nonstandard
$pbi["Assigned to"] = $SROwner

// custom elements
$pbi["Custom.CD.ExternalReferenceID"] = $SRTicketId

我知道它有一种不同的调用方式,但认为理解TFS如何查看工作项属性可能会有所帮助。

答案 1 :(得分:2)

当您从new WorkItem(workitemType){}设置工作项字段的值时,您只能设置intellisense提供的这些字段的值: enter image description here

对于其他字段,您可以设置如下值:

tfsTask.Fields["Priority"].Value = "4";
tfsTask.Fields["Assigned To"].Value = "XXX";
tfsTask.Tags = "tag1;tag2";
tfsTask.Save();