共用方式為


CreateNewWorkItem 工作

更新:2007 年 11 月

根據預設,當 Team Foundation Build 偵測到編譯 (Compilation) 錯誤或靜態 (Static) 分析失敗時,會建立新的工作項目。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

指定 Team 專案名稱。

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 工作的不同執行個體 (Instance),自訂建置處理序。

Team Foundation Build 電腦上的 <root>:\Program Files\MSBuild\Microsoft\VisualStudio\v9.0\TeamBuild 資料夾包含 Microsoft.TeamFoundation.Build.targets 檔。

有效的工作項目類型

每一個 Team 專案都是以特定的方法所建立。在 Team Foundation 中,MSF for Agile Software Development 方法會定義 Bug、服務品質、風險、情節和工作項目等類型。CMMI for Process Improvement 方法會定義 Bug、變更要求、問題、需求、檢閱、風險、情節和工作項目等類型。您也可以自訂現有的工作項目類型定義來定義自己的工作項目類型。如需詳細資訊,請參閱自訂工作項目類型

CreateNewWorkItem 工作定義的工作項目類型對於組建整合必須是有效的,而且也必須定義 FoundIn 欄位。如需詳細資訊,請參閱在工作項目類型中加入整合欄位

預設行為

如果您未定義 WorkItemType 屬性,CreateNewWorkItem 工作會使用 Bug 工作項目類型。

WorkItemFieldValues 屬性的注意事項

WorkItemFieldValues 是用來指定工作項目的欄位值,使用的格式為以分號區隔的名稱/值組清單。如果您指定不存在的欄位名稱,將會忽略對應的 <名稱, 值> 組。例如,如果您想要將嚴重性欄位設定為 1,但是此工作項目類型中未定義嚴重性,則會忽略輸入的值。

如果您定義的工作項目具有不含預設值的必要欄位,您必須提供 WorkItemFieldValues 屬性中的值。例如,「缺失」工作項目類型有一個名為 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" />

請參閱

工作

HOW TO:自訂組建事件

概念

瞭解 Team Foundation Build 組態檔

Team Foundation Build 工作

其他資源

自訂 Team Foundation Build

Team Foundation Build 目標、工作和屬性

工作項目類型結構描述參考