Team Foundation Build 工作
更新:2007 年 11 月
MSBuild 工作本身包含在目標當中。這些工作會提供建置程序期間執行的程式碼。MSBuild 可提供一般工作的程式庫。如需詳細資訊,請參閱 MSBuild 工作參考。
Microsoft.TeamFoundation.Build.targets (Team Foundation Build 的 MSBuild .targets 檔) 會定義幾個預設的 Team Foundation Build 工作,您可以藉由在 TfsBuild.proj 檔內設定屬性來加以自訂。例如,CoreGet 目標包含 Get 工作,可讓您擷取組建類型的特定變更集。根據預設,Get 工作會擷取最新的檔案。如需 .targets 檔案的詳細資訊,請參閱 MSBuild .Targets 檔案。
Microsoft.TeamFoundation.Build.targets 中預設工作的清單
您可以透過修改屬性來自訂下列工作。
Team Foundation Build 工作 |
相關聯的目標 |
---|---|
同步處理組建伺服器上的原始檔。此外,它也會引發記錄事件,向記錄器通知擷取至本機工作區 (Workspace) 中的每個檔案和版本。 |
Get |
對指定之工作區中的所有原始程式檔加上標籤 (Label)。 |
Label |
GenCheckinNotesUpdateWorkItems 工作 產生在建置過程中建立或受影響之所有變更集和工作項目的清單。標籤是用來標記特定組建。 |
如果建置成功,就會叫用 GetChangeSetsAndUpdateWorkitems 目標。 如果建置不成功,就會叫用 GetChangeSetsOnBuildBreak 目標。 |
針對建置程序期間發生的失敗,建立新的工作項目。同時,它會更新工作項目中的 Found In 欄位,並提供特定組建編號的連結。 |
CreateWorkItem |
在組建電腦上建立新的工作區。 |
InitializeWorkspace |
刪除建置執行期間建立的工作區。但是,組建電腦上的實際檔案則不會遭刪除。如果指定的工作區不存在,DeleteWorkspaceTask 就會發出警告。 |
InitializeWorkspace |
UpdateBuildNumberDropLocation 工作 在指定的位置建立資料夾,以便接收已建置的檔案。同時,它也會更新組建編號。 |
InitializeEndToEndIteration |
在建置期間執行一組測試,然後發佈結果。 |
RunTestWithConfiguration |
在組建內插入建置步驟。 |
None |
輸出組建屬性的初始值。 |
InitializeBuildProperties |
在組建上設定所有可設定的屬性。 |
None |
將版本控制伺服器項目轉換為本機工作區項目,並將本機項目轉換為版本控制伺服器項目。 |
ResolveSolutionPathsForEndToEndIteration 和 ResolveTestFilesForEndToEndIteration |
修改 Team Foundation Build 工作
若要修改定義於 Microsoft.TeamFoundation.Build.targets 定義檔中的工作,請檢查您想要修改之工作的屬性,然後針對自己的 Team Foundation Build 組建類型在 TfsBuild.proj 檔中指定這些屬性。CreateNewWorkItem 工作定義如下。
<!-- Create WorkItem for build failure -->
<CreateNewWorkItem
BuildId="$(BuildNumber)"
Description="$(WorkItemDescription)"
TeamProject="$(TeamProject)"
TeamFoundationServerUrl="$(TeamFoundationServerUrl)"
Title="$(WorkItemTitle)"
WorkItemFieldValues="$(WorkItemFieldValues)"
WorkItemType="$(WorkItemType)"
ContinueOnError="true" />
若要自訂在建置失敗時建立的工作項目,請在 TFSBuild.proj 檔中設定 WorkItemFieldValues:
注意事項: |
---|
下面會假設您已經同時設定了 Areapath 和 IterationPath 屬性。 |
<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=Active</WorkItemFieldValues>