Элемент 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>

Элементы и атрибуты

В следующих разделах описаны атрибуты, дочерние и родительские элементы.

Атрибуты

Атрибут Description
DefaultTargets Необязательный атрибут элемента .

Целевой объект или объекты по умолчанию служат точкой входа сборки, если целевой объект не указан. Несколько целевых объектов разделяются точкой с запятой (;).

Если целевой объект по умолчанию не указан в атрибуте DefaultTargets или командной строке MSBuild, обработчик выполняет первый целевой объект в файл проекта после вычисления элементов Импорт.
InitialTargets Необязательный атрибут элемента .

Исходный целевой объект или объекты, выполняемые до целевых объектов, заданных в атрибуте DefaultTargets или в командной строке. Несколько целевых объектов разделяются точкой с запятой (;). Если несколько импортированных файлов определяют InitialTargets, все упомянутые целевые объекты будут выполняться в том порядке, в котором встречаются операции импорта.
Sdk Необязательный атрибут элемента .

Имя и (необязательно) версия пакета SDK для создания неявных операторов import, которые добавляются в PROJ-файл. Если версия не указана, MSBuild будет пытаться использовать версию по умолчанию. Например, <Project Sdk="Microsoft.NET.Sdk" /> или <Project Sdk="My.Custom.Sdk/1.0.0" />.
ToolsVersion Необязательный атрибут элемента .

Версия набора инструментов MSBuild используется для определения значений $(MSBuildBinPath) и $(MSBuildToolsPath).
TreatAsLocalProperty Необязательный атрибут элемента .

Имена свойств, которые не будут относиться к глобальным. Этот атрибут запрещает определенным свойствам командной строки переопределять значения свойств, заданные в файле проекта или целевых объектов и всех последующих операциях импорта. Несколько свойств разделяются точкой с запятой (;).

Как правило, глобальные свойства переопределяют значения свойств, заданных в файле проекта или целевых объектов. Если свойство указано в значении TreatAsLocalProperty, значение глобального свойства не переопределяет значения свойств, заданные в этом файле и всех последующих операциях импорта. Дополнительные сведения см. в практическом руководстве по сборке одинаковых исходных файлов с различными параметрами. Примечание. Чтобы задать глобальные свойства из командной строки, используйте параметр -property (или -p). Кроме того, вы можете задать или изменить глобальные свойства для дочерних проектов в сборках нескольких проектов, используя атрибут Properties задачи MSBuild. Дополнительные сведения см. в разделе Задача MSBuild.
xmlns Необязательный атрибут элемента .

Если он указан, атрибут xmlns должен иметь значение http://schemas.microsoft.com/developer/msbuild/2003.

Дочерние элементы

Элемент Description
Выберите Необязательный элемент.

Вычисляет дочерние элементы для выбора одного набора элементов ItemGroup и/или элементов PropertyGroup для вычисления.
Импорт Необязательный элемент.

Позволяет файлу проекта импортировать другой файл проекта. Проект может содержать любое число элементов Import, включая ноль.
ImportGroup Необязательный элемент.

Содержит коллекцию элементов Import, сгруппированных по необязательному условию.
ItemGroup Необязательный элемент.

Группирующий элемент для отдельных элементов. Элементы указываются с помощью элемента Item. Проект может содержать любое число элементов ItemGroup, включая ноль.
ItemDefinitionGroup Необязательный элемент.

Позволяет определить набор определений элементов, которые представляют собой значения метаданных, по умолчанию применяемых ко всем элементам проекта. Элемент ItemDefinitionGroup используется вместо задач CreateItem и CreateProperty.
ProjectExtensions Необязательный элемент.

Предоставляет способ сохранения данных, не относящихся к MSBuild, в файле проекта MSBuild. Проект может содержать один элемент ProjectExtensions или ни одного такого элемента.
PropertyGroup Необязательный элемент.

Группирующий элемент для отдельных свойств. Свойства задаются с помощью элемента Property. Проект может содержать любое число элементов PropertyGroup, включая ноль.
Sdk Необязательный элемент.

Ссылки на пакет SDK проекта MSBuild. Этот элемент может использоваться в качестве альтернативы атрибуту Sdk.
Целевой объект Необязательный элемент.

Содержит набор задач для MSBuild для последовательного выполнения. Задачи указываются с помощью элемента Task. Проект может содержать любое число элементов Target, включая ноль.
UsingTask Необязательный элемент.

Предоставляет способ регистрации задач в MSBuild. Проект может содержать любое число элементов UsingTask, включая ноль.

Родительские элементы

Нет.

См. также