CreateNewWorkItem 任务

更新:2007 年 11 月

默认情况下,如果 Team Foundation Build 检测到编译错误或静态分析失败,则会创建新工作项。CreateNewWorkItem 任务以指定的类型、指定的标题和说明创建新工作项。Microsoft.VSTS.Build.FoundIn 字段设置为 BuildId 属性的值,WorkItemFieldValues 属性中指定的所有自定义字段值都根据指定值进行设置。

参数

属性

说明

TeamFoundationServerUrl

指定 Team Foundation Server URL。例如,http://MyServer:8080。

BuildNumber

指定 Team Foundation Build 内部版本号。

BuildURI

指定生成 URI。

Description

指定工作项说明。此属性的默认值在生成定义的 TFSBuild.proj 文件中指定,如下所示:

<!-- Description for the work item created on build failure -->
    <DescriptionText>This work item was created by Team Build on a build failure.</DescriptionText>

TeamProject

指定团队项目名称。

Title

指定工作项标题。

WorkItemFieldValues

为创建的工作项指定字段名和值的列表。

将这些值指定为以分号分隔的名称/值对列表。例如,如果要设置 priority=1、severity=2 和 rank=0,请在此处所示的 XML 中定义 MSBuild 的属性,如下所示:

<PropertyGroup>
<WorkItemFieldValues>
   priority =1; severity=2; rank =0
</WorkItemFieldValues>
</PropertyGroup>

WorkItemType

指定工作项类型。例如“bug”。

必须是有效的工作项类型。如果未定义此属性,则默认工作项类型为 bug。

备注

CreateNewWorkItem 任务在 Microsoft.TeamFoundation.Build.Tasks.VersionControl.dll 中定义。Microsoft.TeamFoundation.Build.targets 文件包含 CreateNewWorkItem 任务的一个实例,Team Foundation Build 使用该实例作为 CreateWorkItem 目标的默认实现。您也可以自定义生成过程,方法是在 TfsBuild.proj 文件中为生成定义定义一个不同的 CreateNewWorkItem 任务实例。

Team Foundation Build 计算机上的 <根>:\Program Files\MSBuild\Microsoft\VisualStudio\v9.0\TeamBuild 文件夹包含 Microsoft.TeamFoundation.Build.targets 文件。

有效工作项类型

每个团队项目都由特定方法创建。在 Team Foundation 中,MSF for Agile Software Development 方法定义 Bug、服务质量、风险、方案和任务工作项类型。CMMI for Process Improvement 方法定义 Bug、更改请求、问题、要求、审阅、风险、方案和任务工作项类型。通过自定义现有工作项类型定义,也可以定义您自己的工作项类型。有关更多信息,请参见自定义工作项类型

CreateNewWorkItem 任务定义的工作项类型必须对生成集成有效,并且必须定义 FoundIn 字段。有关更多信息,请参见在工作项类型中添加集成字段

默认行为

如果不定义 WorkItemType 属性,CreateNewWorkItem 任务则使用 Bug 工作项类型。

WorkItemFieldValues 属性的相关说明

WorkItemFieldValues 用于将工作项的字段值指定为以分号分隔的名称/值对列表。如果指定的字段名不存在,则忽略相应的“<名称, 值>”对。例如,如果要将“severity”(严重级别)字段设置为 1,但工作项类型中未定义严重级别,则忽略输入内容。

如果定义的工作项的必选字段没有默认值,则必须在 WorkItemFieldValues 属性中提供值。例如,“Defect”(缺陷)工作项类型有一个名为“Priority”(优先级)的必选字段。“Priority”(优先级)的值为 0、1、2 或 3,未指定默认设置。如果为必需的字段指定的值无效,则任务将失败。例如,如果您将“Priority”(优先级)设置 5,则 CreateNewWorkItem 任务失败。

您不能指定工作项的“CreatedBy”(创建者)和“State”(状态)字段。“CreatedBy”(创建者)字段是只读的。它通过工作项跟踪对象模型 (OM) 进行设置。不能指定“State”字段,原因是工组项跟踪 OM 不可能具有多个启动状态。

示例

下面的示例在 TfsBuild.proj 文件中为生成失败时所创建的工作项设置 WorkItemFieldValues。

<WorkItemFieldValues>Area Path=$(AreaPath);Iteration Path=$(IterationPath);Severity=1;Priority=0;Symptom=build break;Steps To Reproduce=Start the build using Team Build;Source=Development;How Found=Build Break;Assigned To=Jim Wilson</WorkItemFieldValues>

下面的示例在 TfsBuild.proj 文件中使用 CreateNewWorkItem 任务在生成失败时创建自定义工作项。

<!-- Add the UsingTask to the top of the TFsBuild.proj file after the schema definition-->
<UsingTask TaskName="Microsoft.TeamFounadtion.Build.Tasks.CreateNewWorkItem"   AssemblyFile="$(TeamBuildRefPath)\Microsoft.TeamFoundation.Build.Tasks.VersionControl.dll" />
<!-- Add the following XML after the closing </ItemGroup>-->
<!-- and before the closing </Project>-->
</ItemGroup>
   <PropertyGroup>      <BuildNumber>BuildType_Date.1</BuildNumber>      <WorkItemFieldValues>Priority=1:Severity=2</WorkItemFieldValues>      <WorkItemType>Bug</WorkItemType>   </PropertyGroup>   <TargetName="CreateWorkItem">      <CreateNewWorkItem         BuildNumber="$(BuildNumber)"         BuildURi="$(BuildURI)"         Description="The CreateNewWorkItem task created this bug."         TeamProject"MyTeamProject"         TeamFoundationServerUrl="http://MyTFServer.8080"         Title="Bug in $(BuildNumber)"         WorkItemFieldValues="$(WorkItemFieldValues)"         WorkItemType="$(WorkItemType)" />   </Target>
</Project>

下面的示例演示 Microsoft.TeamFoundation.Build.targets 文件中定义的 CreateNewWorkItem 任务的默认实例。

<CreateNewWorkItem
    TeamFoundationServerUrl="$(TeamFoundationServerUrl)"
    BuildUri="$(BuildURI)"
    BuildNumber="$(BuildNumber)"
    Description="$(WorkItemDescription)"
    TeamProject="$(TeamProject)"
    Title="$(WorkItemTitle)"
    WorkItemFieldValues="$(WorkItemFieldValues)"
    WorkItemType="$(WorkItemType)"
    ContinueOnError="true" />

请参见

任务

如何:自定义内部版本号

概念

了解 Team Foundation Build 配置文件

Team Foundation Build 任务

其他资源

自定义 Team Foundation Build

Team Foundation Build 目标、任务和属性

工作项类型架构参考