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

可选特性。

当未指定目标时,将成为生成的入口点的默认目标。 多个目标之间用分号 (;) 分隔。

如果在 DefaultTargets 特性或 MSBuild 命令行中未指定默认目标,则在计算了 Import 元素后,该引擎将执行项目文件中的第一个目标。

InitialTargets

可选特性。

要在 DefaultTargets 特性或命令行指定的目标之前运行的一个或多个初始目标。 多个目标之间用分号 (;) 分隔。

ToolsVersion

可选特性。

工具集 MSBuild 的版本用来确定 $(MSBuildBinPath) 和 $(MSBuildToolsPath) 的值。

TreatAsLocalProperty

可选特性。

不会认为是全局的属性名称。 此属性可防止给定的命令行属性在项目或目标文件和所有后续导入设置的属性值。 多个属性是分号 (;) 分隔。

通常,全局属性重写项目或目标文件设置的属性值。 如果属性列出按 TreatAsLocalProperty 值,全局属性值不重写该文件和所有后续导入设置的属性值。 有关更多信息,请参见如何:使用不同选项生成相同的源文件

说明说明
使用 /property (或 /p) 开关,您将全局属性在命令提示。使用 MSBuild 任务的 Properties 属性,还可以设置或修改子项目的全局属性在多项目生成。有关更多信息,请参见MSBuild 任务

Xmlns

必需的特性。

xmlns 特性的值必须为“https://schemas.microsoft.com/developer/msbuild/2003”。

子元素

元素

描述

Choose

可选元素。

通过计算子元素来选择一组要计算的 ItemGroup 元素和/或 PropertyGroup 元素。

导入

可选元素。

允许一个项目文件导入另一个项目文件。 一个项目中可能有零个或零个以上的 Import 元素。

ItemGroup

可选元素。

多个不同项的分组元素。 项是使用 Item 元素指定的。 一个项目中可能有零个或零个以上的 ItemGroup 元素。

ProjectExtensions

可选元素。

提供了一种在 MSBuild 项目文件中保留非 MSBuild 信息的方法。 一个项目中可能有零个或一个 ProjectExtensions 元素。

PropertyGroup

可选元素。

多个不同属性的分组元素。 属性是使用 Property 元素指定的。 一个项目中可能有零个或零个以上的 PropertyGroup 元素。

Target

可选元素。

包含 MSBuild 的一组任务,这组任务应按顺序执行。 任务是使用 Task 元素指定的。 一个项目中可能有零个或零个以上的 Target 元素。

UsingTask

可选元素。

提供了一种在 MSBuild 中注册任务的方法。 一个项目中可能有零个或零个以上的 UsingTask 元素。

父元素

无。

请参见

任务

如何:指定首先生成的目标

参考

MSBuild 命令行参考

概念

MSBuild 项目文件架构引用

其他资源

MSBuild