MSBuild project file schema reference

Provides a table of all the MSBuild XML Schema elements with their available attributes and child elements.

MSBuild uses project files to instruct the build engine what to build and how to build it. MSBuild project files are XML files that adhere to the MSBuild XML schema. This section documents the XML schema definition (.xsd) file for MSBuild.

MSBuild XSD schema definition files

The schema link in an MSBuild project file is not required in Visual Studio 2017 and later. If present, it should be http://schemas.microsoft.com/developer/msbuild/2003 regardless of the version of Visual Studio. This value is not a live web destination; the most current MSBuild schema definition file (.xsd file) can be found at Microsoft.Build.xsd.

The following table shows links to each version of the XSD schema:

MSBuild Version GitHub link Raw link (for tooling)
17.7 Microsoft.Build.xsd version 17.7.0 raw
17.6 Microsoft.Build.xsd version 17.6.3 raw
17.5 Microsoft.Build.xsd version 17.5.1 raw
17.4 Microsoft.Build.xsd version 17.4.4 raw
17.3 Microsoft.Build.xsd version 17.3.1 raw
17.2 Microsoft.Build.xsd version 17.2.1 raw
17.1 Microsoft.Build.xsd version 17.1.1 raw
17.0 Microsoft.Build.xsd version 17.0.0 raw
16.11 Microsoft.Build.xsd version 16.11.2 raw
16.10 Microsoft.Build.xsd version 16.10.2 raw
16.9 Microsoft.Build.xsd version 16.9.2 raw
16.8 Microsoft.Build.xsd version 16.8.3 raw
16.7 Microsoft.Build.xsd version 16.7.0.37604 raw
16.4 Microsoft.Build.xsd version 16.4.0.56107 raw
15.9 Microsoft.Build.xsd version 15.9.21.664 raw

The top-level XSD file includes two other child XSD files, Microsoft.Build.CommonTypes.xsd and Microsoft.Build.Core.xsd. You can also find all the MSBuild XSD schema definition files in the Visual Studio installation folder under Xml\Schemas\1033\MSBuild.

For more about MSBuild versions, including a table of corresponding .NET SDK versions, see Overview of .NET, MSBuild, and Visual Studio versioning.

MSBuild XML schema elements

The following table lists all of the MSBuild XML schema elements along with their child elements and attributes.

Element Child elements Attributes
Choose element (MSBuild) Otherwise

When
--
Import element (MSBuild) -- Condition

Project
ImportGroup element Import Condition
Item element (MSBuild) ItemMetaData Condition

Exclude

Include

Remove
ItemDefinitionGroup element (MSBuild) Item Condition
ItemGroup element (MSBuild) Item Condition
ItemMetadata element (MSBuild) Item Condition
OnError element (MSBuild) -- Condition

ExecuteTargets
Otherwise element (MSBuild) Choose

ItemGroup

PropertyGroup
--
Output element (MSBuild) -- Condition

ItemName

PropertyName

TaskParameter
Parameter element -- Output

ParameterType

Required
ParameterGroup element Parameter --
Project element (MSBuild) Choose

Import

ItemGroup

ProjectExtensions

PropertyGroup

Target

UsingTask
DefaultTargets

InitialTargets

Sdk

ToolsVersion

TreatAsLocalProperty

xmlns
ProjectExtensions element (MSBuild) -- --
Property element (MSBuild) -- Condition
PropertyGroup element (MSBuild) Property Condition
Sdk element (MSBuild) -- Name

Version
Target element (MSBuild) OnError

Task
AfterTargets

BeforeTargets

Condition

DependsOnTargets

Inputs

KeepDuplicateOutputs

Name

Outputs

Returns
Task element of Target (MSBuild) Output Condition

ContinueOnError

Parameter
Task element of UsingTask (MSBuild) Data Evaluate
UsingTask element (MSBuild) ParameterGroup

Task
AssemblyFile

AssemblyName

Condition

TaskFactory

TaskName
When element (MSBuild) Choose

ItemGroup

PropertyGroup
Condition

See also