MSBuild 項目檔可以包含一或多個定義專案建置方式的目標。 MSBuild 會建置它找到的第一個目標,以及任何相依性,除非:
-
Project元素包含InitialTargets屬性。 -
Project元素包含DefaultTargets屬性。 - MSBuild 命令具有指定目標的
-target參數。
使用 InitialTargets 屬性
Project 元素的 InitialTargets 屬性指定首先執行的初始目標。 它會覆寫您在命令列或 Project 元素的 DefaultTargets 屬性中使用 MSBuild 所指定的任何目標。
指定單一初始目標
在 Project 項目的 InitialTargets 屬性中指定預設目標。 例如:
<Project InitialTargets="Clean">
指定多個初始目標
您可以在 Project 項目的 InitialTargets 屬性中指定多個初始目標。 依序列出目標,並使用分號來分隔每個目標。 清單中的目標會循序執行。
例如,若要執行 Clean 目標,然後執行 Compile 目標,請輸入:
<Project InitialTargets="Clean;Compile">
使用 DefaultTargets 屬性
Project 元素的 DefaultTargets 屬性指定若未在命令行上明確指定特定目標,將要建置哪些目標。
如果在 Project 專案的 InitialTargets 和 DefaultTargets 屬性中指定目標,而且命令行上未指定任何目標,MSBuild 會執行 InitialTargets 屬性中指定的目標,後面接著 DefaultTargets 屬性中指定的目標。
指定單一默認目標
在 Project 項目的 DefaultTargets 屬性中指定預設目標。 例如:
<Project DefaultTargets="Compile">`
指定多個預設目標
您可以在 Project 項目的 DefaultTargets 屬性中指定多個預設目標。 依序列出預設目標,並使用分號分隔每個目標。 清單中的目標會循序執行。
例如,若要執行 Clean 目標,然後執行 Compile 目標,請輸入:
<Project DefaultTargets="Clean;Compile">
使用 -target 參數覆寫默認目標
如果未在項目檔中定義預設目標,或您不想使用定義的預設目標,您可以使用命令行參數 -target 指定不同的目標。 指定使用 -target 開關的目標或目標將會被執行,而不是由 Project 元素的 DefaultTargets 屬性指定的目標。
InitialTargets 屬性中指定的目標一律會先執行。
使用單一目標覆寫預設目標
使用具有冒號 (:) 和目標名稱的 -target 命令行參數,指定要作為第一個目標的目標。 例如:
msbuild file.proj -target:Clean
使用多個目標覆寫默認目標
指定一個首要目標清單,並以分號分隔,使用 -target 命令行參數。 例如:
msbuild <file name>.proj -t:Clean;Compile