如何:指定要優先建置的目標

專案檔可以含有一個或多個 Target 項目,定義專案的建置 (Build) 方式。 Microsoft Build Engine (MSBuild) 引擎會建置找到的第一個專案以及任何相依性,除非專案檔含有 DefaultTargets 屬性、InitialTargets 屬性,或在命令列中使用 /target 參數指定目標。

使用 InitialTargets 屬性

Project 項目的 InitialTargets 屬性會指定最先執行的目標,即使目標是在命令列或 DefaultTargets 屬性中指定的。

若要指定一個初始目標

  • Project 項目的 InitialTargets 屬性中指定預設目標。 例如:

    <Project InitialTargets="Clean">

若要在 InitialTargets 屬性中指定一個以上的初始目標,可以依序列出這些目標,目標之間使用分號區隔。 清單中的目標便會循序執行。

若要指定一個以上的初始目標

  • Project 項目的 InitialTargets 屬性中列出初始目標,目標之間以分號區隔。 例如,若要執行 Clean 目標,接著執行 Compile 目標,請輸入:

    <Project InitialTargets="Clean;Compile">

使用 DefaultTargets 屬性

如果沒有在命令列中明確指定目標,Project 項目的 DefaultTargets 屬性會指定要建置的目標。 如果 InitialTargets 屬性 DefaultTargets 和屬性中都指定了目標,而且在命令列中沒有指定任何目標,MSBuild 會先執行 InitialTargets 屬性中指定的目標,接著再執行 DefaultTargets 屬性中指定的目標。

若要指定一個預設目標

  • Project 項目的 DefaultTargets 屬性中指定預設目標。 例如:

    <Project DefaultTargets="Compile">

若要在 DefaultTargets 屬性中指定一個以上的預設目標,可以依序列出這些目標,目標之間使用分號區隔。 清單中的目標便會循序執行。

若要指定一個以上的預設目標

  • Project 項目的 DefaultTargets 屬性中列出預設目標,目標之間以分號區隔。 例如,若要執行 Clean 目標,接著執行 Compile 目標,請輸入:

    <Project DefaultTargets="Clean;Compile">

使用 /target 參數

如果專案檔中未定義預設目標,或是您不想使用預設目標,則可使用命令列參數 /target 來指定其他目標。 這時便會執行以 /target 參數指定的目標,而不是執行以 DefaultTargets 屬性指定的目標。 在 InitialTargets 屬性中指定的目標一定會最先執行。

若要先使用非預設的目標

  • 使用 /target 命令列參數將目標指定為第一個目標。 例如:

    msbuild file.proj /target:Clean

若要先使用其他非預設的目標

  • 使用 /target 命令列參數列出這些目標,目標之間使用分號區隔。 例如:

    msbuild <file name>.proj /t:Clean;Compile

請參閱

工作

如何:清除組建

概念

MSBuild 目標

其他資源

MSBuild