目標執行順序

來自 MSDN: 目標構建順序

確定目標構建順序

MSBuild 確定目標構建順序,如下所示:

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