Project 項目 (MSBuild)

MSBuild 專案檔的必要根項目。

<Project InitialTargets="TargetA;TargetB"
         DefaultTargets="TargetC;TargetD"
         TreatAsLocalProperty="PropertyA;PropertyB"
         ToolsVersion=<version number>
         xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
    <Choose>... </Choose>
    <PropertyGroup>... </PropertyGroup>
    <ItemGroup>... </ItemGroup>
    <Target>... </Target>
    <UsingTask.../>
    <ProjectExtensions>... </ProjectExtensions>
    <Import... />
</Project>

屬性和項目

下列章節會說明屬性、子項目和父項目。

屬性

屬性

描述

DefaultTargets

選擇性屬性。

如果沒有指定目標 (Target) 的話,則將成為組建 (Build) 之進入點 (Entry Point) 的預設目標。 若有多個目標,則會由分號 (;) 分隔。

如果沒有在 DefaultTargets 屬性或 MSBuild 命令列指定預設目標,則在評估過 Import 項目之後,引擎便會執行專案檔中的第一個目標。

InitialTargets

選擇性屬性。

DefaultTargets 屬性中或命令列上指定目標之前,要執行的初始目標。 若有多個目標,則會由分號 (;) 分隔。

ToolsVersion

選擇性屬性。

MSBuild 用來判斷 $(MSBuildBinPath) 和 $(MSBuildToolsPath) 這兩個值的工具組版本。

TreatAsLocalProperty

選擇性屬性。

不會視為是全域的屬性名稱。 這個屬性來防止特定命令列屬性覆寫專案或目標檔和所有後續的匯入設定的屬性值。 多個屬性由分號(;)分隔。

通常,全域屬性覆寫專案或目標檔設定的屬性值。 如果屬性清單值 TreatAsLocalProperty ,全域屬性值不會覆寫該檔案和所有後續的匯入設定的屬性值。 如需詳細資訊,請參閱如何:使用不同選項來建置相同的原始程式檔

注意事項注意事項

您可以在一個命令提示字元上設定的全域屬性使用 /property (或 /p)參數。您也可以設定或修改子專案的全域屬性是在多個專案的組建使用 Properties MSBuild的屬性中配置。如需詳細資訊,請參閱MSBuild 工作

Xmlns

必要屬性。

xmlns 屬性必須具有 "https://schemas.microsoft.com/developer/msbuild/2003" 的值。

子項目

元素

描述

Choose

選擇性項目。

評估子項目以選擇一組要評估的 ItemGroup 項目和 (或) PropertyGroup 項目。

Import

選擇性項目。

可讓專案檔匯入另一個專案檔。 專案中可能有零個或多個 Import 項目。

ItemGroup

選擇性項目。

個別項目 (Item) 的群組項目 (Element)。 這些項目 (Item) 是使用 Item 項目 (Element) 指定的。 專案中可能有零個或多個 ItemGroup 項目。

ProjectExtensions

選擇性項目。

提供保存 MSBuild 專案檔中非 MSBuild 資訊的方法。 專案中可能有零或一個 ProjectExtensions 項目。

PropertyGroup

選擇性項目。

個別屬性 (Property) 的群組項目。 這些屬性是使用 Property 項目指定的。 專案中可能有零個或多個 PropertyGroup 項目。

目標

選擇性項目。

包含 MSBuild 會依序執行的一組工作。 這些工作是使用 Task 項目指定的。 專案中可能有零個或多個 Target 項目。

UsingTask

選擇性項目。

提供在 MSBuild 中註冊工作的方法。 專案中可能有零個或多個 UsingTask 項目。

父項目

無。

請參閱

工作

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

參考

MSBuild 命令列參考

概念

MSBuild 專案檔案結構描述參考

其他資源

MSBuild