可自訂的 Team Foundation Build 目標
更新:2007 年 11 月
MSBuild 目標 (Target) 會定義 MSBuild 專案的建置 (Build) 方式。Microsoft.TeamFoundation.Build.targets 檔會針對用於所有 Team Foundation Build 類型的 Team Foundation Build,定義目標階層及一組預先定義的 MSBuild 工作和目標。所有組建定義都包含名為 TfsBuild.proj 的專案檔。專案檔可以只與一個組建定義產生關聯,或與多個組建定義產生關聯。TfsBuild.proj 會匯入 Microsoft.TeamFoundation.Build.targets 檔,並提供各種屬性和項目群組的值。您可以自訂 TfsBuild.proj 檔,覆寫階層中的某些擴充點目標。這些目標檔都位於組建代理程式上的 <root>:\Program Files\MSBuild\Microsoft\VisualStudio\TeamBuild 中。
重要事項: |
---|
請勿修改 Microsoft.TeamFoundation.Build.targets 檔。 |
如需 MSBuild 目標的詳細資訊,請參閱 MSBuild 目標。
可以使用工作自訂的目標
工作包含在目標中。提供程式碼的工作,這些程式碼會在建置程序中執行。下表將列出針對擴充性定義的所有 Team Foundation Build 目標。必須在建置程序期間執行自訂工作時,請將工作插入其中一個目標。
注意事項: |
---|
我們不建議您覆寫其他目標。 |
目標名稱 |
描述 |
---|---|
BeforeEndToEndIteration |
將工作插入這個目標,以在建置程序剛開始時執行自訂工作。 |
AfterEndToEndIteration |
請將您的工作插入此目標,以便在建置程序的結尾處執行自訂工作。 |
BeforeInitializeWorkspace |
請將您的工作插入此目標,以便在工作區初始化之前執行自訂工作。 |
AfterInitializeWorkspace |
請將您的工作插入此目標,以便在工作區初始化之後執行自訂工作。 |
BuildNumberOverrideTarget |
請將您的工作插入此目標,以便自訂組建編號或置放位置等屬性。您所撰寫的工作必須建立名為 BuildNumber 的輸出屬性。 |
BeforeClean |
在嘗試清除之前呼叫。請將您的工作插入此目標,以便執行預先清除自訂工作。 |
AfterClean |
在完成清除之後呼叫。請將您的工作插入此目標,以便執行事後清除自訂工作。 |
BeforeGet |
從原始檔控制擷取原始檔之前呼叫。請將您的工作插入此目標,以便在擷取原始檔之前執行自訂工作。 |
AfterGet |
在擷取原始檔之後呼叫。請將您的工作插入此目標,以便在擷取原始檔之後執行自訂工作。 |
BeforeLabel |
在標記原始檔之前呼叫。請將您的工作插入此目標,以便在 Label 目標之前執行自訂工作。 |
AfterLabel |
在完成標記之後呼叫。請將您的工作插入此目標,以便在 Label 目標之後執行自訂工作。 |
BeforeCompile |
在開始編譯 (Compilation) 之前呼叫。請將您的工作插入此目標,以便在編譯程式碼檔之前執行自訂工作。 |
BeforeCompileConfiguration |
請將您的工作插入此目標,以便在個別組態編譯 (Compilation) 之前執行自訂工作。 |
BeforeCompileSolution |
請將您的工作插入此目標,以便在個別方案編譯之前執行自訂工作。 |
AfterCompileSolution |
將工作插入這個目標,以在編譯個別方案之後執行自訂工作。 |
AfterCompileConfiguration |
請將您的工作插入此目標,以便在個別組態編譯之後執行自訂工作。 |
AfterCompile |
在完成編譯之後呼叫。請將您的工作插入此目標,以便在編譯程式碼檔之後執行自訂工作。如需範例,請參閱 逐步解說:設定 Team Build 以建置 Visual Studio 安裝專案。 |
BeforeGetChangesetsAndUpdateWorkItems |
請將您的工作插入此目標,以便在與變更集產生關聯與更新工作項目之前執行自訂工作。 |
AfterGetChangesetsAndUpdateWorkItems |
請將您的工作插入此目標,以便在與變更集產生關聯與更新工作項目之後執行自訂工作。 |
BeforeTest |
在執行測試之前呼叫。請將您的工作插入此目標,以便在 Test 目標之前執行自訂工作。 |
BeforeTestConfiguration |
請將您的工作插入此目標,以便在測試個別組態之前執行自訂工作。 |
AfterTestConfiguration |
請將您的工作插入此目標,以便在測試個別組態之後執行自訂工作。 |
AfterTest |
在完成測試之後呼叫。請將您的工作插入此目標,以便在 Test 目標之後執行自訂工作。 |
BeforeDropBuild |
將已建置的二進位碼檔案、建置記錄檔及測試結果儲存至發行伺服器上的組建置放目錄之前呼叫。請將您的工作插入此目標,以便在已建置的檔案儲存至置放目錄之前執行自訂工作。 |
AfterDropBuild |
將已建置的二進位碼檔案、建置記錄檔及測試結果置放至發行伺服器之後呼叫。請將您的工作插入此目標,以便在已建置的檔案儲存至置放目錄之後執行自訂工作。 |
BeforeCreateWorkItem |
請將您的工作插入此目標,以便在建立工作項目之前執行自訂工作。 |
AfterCreateWorkItem |
請將您的工作插入此目標,以便在建立工作項目之後執行自訂工作。 |
BeforeOnBuildBreak |
在因為建置中斷而建立工作項目之前呼叫。請將您的工作插入此目標,以便在 BuildBreak 目標之前執行自訂工作。 |
AfterOnBuildBreak |
在因為建置中斷而建立工作項目之後呼叫。請將您的工作插入此目標,以便在 BuildBreak 目標之後執行自訂工作。 |
GenerateDocumentation |
這是空目標。請將工作插入這個目標,以在建置程序期間自動產生文件。 |
覆寫目標以便執行自訂工作
您所撰寫的工作程式碼必須搭配目標,而且組建電腦上必須有可使用的已建置二進位檔,這可藉由在 TfsBuild.proj 檔內提供原始檔控制路徑,或是讓組建電腦本身擁有可使用的二進位檔。您也必須使用 UsingTaskMSBuild 項目宣告自訂工作,藉以在 TfsBuild.proj 檔中註冊此自訂工作。如需詳細資訊,請參閱UsingTask 項目 (MSBuild)。最後,在組建電腦上部署包含自訂工作的 DLL。
重要事項: |
---|
每一個由您自訂的 TfsBuild.proj 檔案關聯的組建定義都會受到變更的影響。 |
如需自訂工作之端對端實作 (Implementation) 的範例,請參閱逐步解說:使用自訂工作自訂 Team Foundation Build。
目標執行順序
目標的執行順序是根據 CleanCompilationOutputOnly 屬性的值。如果 CleanCompilationOutputOnly 是 true,則初始狀態的目標 (BeforeClean、CoreClean 和 AfterClean) 會在取得和標籤目標 (BeforeGet、CoreGet、AfterGet、BeforeLabel、CoreLabel 和 AfterLabel) 之後執行。如果 CleanCompilationOutputOnly 屬性是 false,則初始狀態的目標會在取得和標籤目標之前執行。如果 CleanCompilationOutputOnly 是 true,則在 CoreClean 目標執行期間,只會從來源目錄刪除中繼組件 (Assembly)。如果這個屬性設定為 false,則在 CoreClean 目標執行期間將會刪除整個來源目錄。
下表顯示排序過且根據 CleanCompilationOutputOnly 是 true 或 false 而執行的目標清單。您可以覆寫的目標會標明出來。
CleanCompilationOutputOnly = true |
CleanCompilationOutputOnly = false |
---|---|
|
|
以下是在 CoreCompile 目標執行期間發生錯誤時會執行的目標清單。您可以覆寫的目標會標明出來。
SetBuildBreakProperties
BeforeOnBuildBreak (可以覆寫)
GetChangesetsOnBuildBreak
BeforeDropBuild (可以覆寫)
CoreDropBuild
AfterDropBuild (可以覆寫)
BeforeCreateWorkItem (可以覆寫)
CoreCreateWorkItem
AfterCreateWorkItem (可以覆寫)
CoreOnBuildBreak
AfterOnBuildBreak (可以覆寫)