Project 項目 (MSBuild)

MSBuild 專案檔的必要根項目。

語法

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

屬性和元素

下列章節說明屬性、子元素和父元素。

屬性

屬性 描述
DefaultTargets 選用屬性。

如果未指定任何目標,則為一或多個做為組建進入點的預設目標。 請以分號 (;) 來分隔多個目標。

如果未在 DefaultTargets 屬性或 MSBuild 命令列中指定任何預設目標,則引擎會在已評估 Import 項目之後執行專案中的第一個目標。
InitialTargets 選用屬性。

要在 DefaultTargets 屬性中或命令列上指定目標之前執行的一或多個初始目標。 請以分號 (;) 來分隔多個目標。 如果多個匯入的檔案定義 InitialTargets,則提到的所有目標都會按照進行匯入的順序執行。
Sdk 選用屬性。

要用來建立隱含 Import 陳述式 (會將它新增至 .proj 檔案) 的 SDK 名稱和選擇性版本。 如果未指定版本,MSBuild 會嘗試解析預設版本。 例如,<Project Sdk="Microsoft.NET.Sdk" /><Project Sdk="My.Custom.Sdk/1.0.0" />
ToolsVersion 選用屬性。

MSBuild 用來判斷 $(MSBuildBinPath) 和 $(MSBuildToolsPath) 之值的工具組版本。
TreatAsLocalProperty 選用屬性。

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

一般來說,全域屬性值會覆寫專案檔或目標檔案中所設定的屬性值。 如果此屬性列於 TreatAsLocalProperty 值中,則全域屬性值不會覆寫該檔案及任何後續匯入中所設定的屬性值。 如需詳細資訊,請參閱如何:使用不同選項來建置相同的原始程式檔注意︰您可以使用 -property (或 -p) 參數,在命令提示字元中設定全域屬性。 您也可以使用 MSBuild 工作的 Properties 屬性,針對多專案組建中的子專案設定或修改全域屬性。 如需詳細資訊,請參閱 MSBuild 工作
xmlns 選用屬性。

指定時,xmlns 屬性的值必須為 http://schemas.microsoft.com/developer/msbuild/2003

子元素

元素 描述
選擇 選擇性項目。

評估子項目,以選取一組要評估的 ItemGroup 項目和/或 PropertyGroup 項目。
匯入 選擇性項目。

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

包含群組在選擇性條件下方的 Import 元素集合。
ItemGroup 選擇性項目。

個別項目 (Item) 的群組項目 (Element)。 使用 Item 項目 (Element) 來指定項目 (Item)。 專案中可能有零或多個 ItemGroup 項目。
ItemDefinitionGroup 選擇性項目。

可讓您定義一組項目定義,這些項目定義預設為套用至專案中所有項目的中繼資料值。 ItemDefinitionGroup 可取代使用 CreateItem 工作和 CreateProperty 工作的需求。
ProjectExtensions 選擇性項目。

提供一種方式,在 MSBuild 專案檔保存非 MSBuild 的資訊。 專案中可能有零或一個 ProjectExtensions 項目。
PropertyGroup 選擇性項目。

個別屬性的群組項目。 使用 Property 項目來指定屬性。 專案中可能有零或多個 PropertyGroup 項目。
Sdk 選擇性項目。

參考 MSBuild 專案 SDK。 此元素可用來當做 Sdk 屬性的替代方案。
Target 選擇性項目。

包含一組可循序執行的 MSBuild 工作。 使用 Item 項目來指定工作。 專案中可能有零或多個 Target 項目。
UsingTask 選擇性項目。

提供一種方式,在 MSBuild 中登錄工作。 專案中可能有零或多個 UsingTask 項目。

父元素

無。

另請參閱