An MSBuild Project Optional semi-colon separated list of one or more targets that will be built if no targets are otherwise specified Optional semi-colon separated list of targets that should always be built before any other targets Optional string describing the toolset version this project should normally be built with Groups tasks into a section of the build process Name of the target Optional semi-colon separated list of targets that should be run before this target Optional semi-colon separated list of files that form inputs into this target. Their timestamps will be compared with the timestamps of files in Outputs to determine whether the Target is up to date Optional semi-colon separated list of files that form outputs into this target. Their timestamps will be compared with the timestamps of files in Inputs to determine whether the Target is up to date Optional expression evaluated to determine whether the Target and the targets it depends on should be run Groups property definitions Optional expression evaluated to determine whether the PropertyGroup should be used Groups item list definitions Optional expression evaluated to determine whether the ItemGroup should be used Groups item metadata definitions Optional expression evaluated to determine whether the ItemDefinitionGroup should be used Groups When and Otherwise elements Groups PropertyGroup and/or ItemGroup elements Optional expression evaluated to determine whether the child PropertyGroups and/or ItemGroups should be used Groups PropertyGroup and/or ItemGroup elements that are used if no Conditions on sibling When elements evaluate to true Specifies targets to execute in the event of a recoverable error Optional expression evaluated to determine whether the targets should be executed Semi-colon separated list of targets to execute Declares where to load a task that will be used in the project Optional expression evaluated to determine whether the declaration should be evaluated Optional name of assembly containing the task. Either AssemblyName or AssemblyFile must be used Optional path to assembly containing the task. Either AssemblyName or AssemblyFile must be used Name of task class in the assembly Optional version of the runtime that this task must be run on. An example value would be "v2.0". Overrides any version declared by a RequiredRuntime .NET attribute on the task class itself. Normally, neither this attribute nor the .NET RequiredRuntime attribute are present, in which case the task will run on the same runtime that MSBuild is running on. Declares that the contents of another project file should be inserted at this location Optional expression evaluated to determine whether the import should occur Project file to import Optional section used by MSBuild hosts, that may contain arbitrary XML content that is ignored by MSBuild itself Optional expression evaluated to determine whether the items should be evaluated Semi-colon separated list of files (wildcards are allowed) or other item names to include in this item list Semi-colon separated list of files (wildcards are allowed) or other item names to exclude from the Include list Semi-colon separated list of files (wildcards are allowed) or other item names to remove from the existing list contents Optional expression evaluated to determine whether the property should be evaluated Optional expression evaluated to determine whether the property should be evaluated Optional element specifying a specific task output to be gathered Task parameter to gather. Matches the name of a .NET Property on the task class that has an [Output] attribute Optional name of an item list to put the gathered outputs into. Either ItemName or PropertyName must be specified Optional name of a property to put the gathered output into. Either PropertyName or ItemName must be specified Optional expression evaluated to determine whether the output should be gathered Optional expression evaluated to determine whether the task should be executed Optional boolean indicating whether a recoverable task error should be ignored. Default false