目標執行順序
來自 MSDN: 目標構建順序
確定目標構建順序
MSBuild 確定目標構建順序,如下所示:
- InitialTargets 目標已執行。
- 執行/ target 開關在命令列上指定的目標。如果在命令列上未指定目標,則執行 DefaultTargets 目標。如果兩者都不存在,則執行遇到的第一個目標。
- 評估目標的 Condition 屬性。如果 Condition 屬性存在且計算結果為 false,則不執行目標,並且對構建沒有進一步的影響。
- 在執行目標之前,將執行其 DependsOnTargets 目標。
- 在執行目標之前,將執行在 BeforeTargets 屬性中列出它的任何目標。
- 在執行目標之前,會比較其 Inputs 屬性和 Outputs 屬性。如果 MSBuild 確定任何輸出檔案相對於相應的輸入檔案已過期,則 MSBuild 將執行目標。否則,MSBuild 會跳過目標。
- 執行或跳過目標後,將執行在 AfterTargets 屬性中列出目標的任何目標。