Поделиться через


Элемент Item (MSBuild)

Содержит определяемый пользователем элемент и его метаданные. Каждый элемент, используемый в проекте MSBuild, должен быть указан как дочерний для элемента ItemGroup.

<Item Include="*.cs"
        Exclude="MyFile.cs"
        Remove="RemoveFile.cs"
        Condition="'String A'=='String B'" >
    <ItemMetadata1>...</ItemMetadata1>
    <ItemMetadata2>...</ItemMetadata2>
</Item>

Атрибуты и элементы

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

Атрибуты

Атрибут

Описание

Include

Обязательный атрибут.

Файл или подстановочный знак, включаемый в список элементов.

Exclude

Необязательный атрибут.

Файл или подстановочный знак, исключаемый из списка элементов.

Condition

Необязательный атрибут.

Проверяемое условие. Для получения дополнительной информации см. Условия MSBuild.

Remove

Необязательный атрибут.

Файл или подстановочный знак, удаляемый из списка элементов.

Этот атрибут является допустимым только в том случае, если он указан для элемента ItemGroup, находящегося в Target.

KeepMetadata

Необязательный атрибут.

Метаданные для исходных элементов, добавляемые в целевые элементы. Из исходного элемента в целевой передаются только метаданные, имена которых указаны в списке с разделителем точкой с запятой. Для получения дополнительной информации см. Элементы MSBuild.

Этот атрибут является допустимым только в том случае, если он указан для элемента ItemGroup, находящегося в Target.

RemoveMetadata

Необязательный атрибут.

Метаданные для исходных элементов, не передаваемые в целевые элементы. Из исходного элемента в целевой передаются все метаданные за исключением метаданных, имена которых содержатся в списке имен, разделенных точкой с запятой. Для получения дополнительной информации см. Элементы MSBuild.

Этот атрибут является допустимым только в том случае, если он указан для элемента ItemGroup, находящегося в Target.

KeepDuplicates

Необязательный атрибут.

Указывает, следует ли добавлять элемент в целевую группу при наличии точной копией существующего элемента. Если исходный и целевой элементы имеют одинаковое значение Include, но различные метаданные, элемент добавляется в целевую группу, даже если KeepDuplicates имеет значение false. Для получения дополнительной информации см. Элементы MSBuild.

Этот атрибут является допустимым только в том случае, если он указан для элемента ItemGroup, находящегося в Target.

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

Элемент

Описание

ItemMetadata

Определяемый пользователем ключ метаданных элемента, содержащий значение метаданных элемента. Элемент может содержать любое число элементов ItemMetadata, включая ноль.

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

Элемент

Описание

ItemGroup

Группирующий элемент для элементов.

Заметки

Элементы Item определяют входные данные для системы построения и группируются в коллекции элементов на основании определенных пользователем имен коллекции. Эти коллекции элементов можно использовать в качестве параметров для задач, в которых с помощью отдельных элементов выполняются этапы процесса построения. Для получения дополнительной информации см. Элементы MSBuild.

Использование нотации @(myType) позволяет расширить коллекцию элементов типа myType до списка строк, разделяемых точкой с запятой, и передать в параметр. Если параметр имеет тип string, значением параметра является список элементов, разделенных точкой с запятой. Если параметр представляет собой массив строк (string[]), каждый элемент вставляется в массив на основании расположения точек с запятой. Если параметр задачи имеет тип ITaskItem[], значением является содержимое коллекции элементов и все присоединенные метаданные. Чтобы разделять элементы с помощью символа, отличного от точки с запятой, используйте синтаксис @(myType, 'разделитель').

Подсистема MSBuild может оценивать подстановочные знаки, такие как * и ?, и рекурсивные подстановочные знаки, такие как /**/*.cs. Для получения дополнительной информации см. Элементы MSBuild.

Пример

В следующем примере кода показано объявление двух элементов типа CSFile. Второй объявленный элемент содержит метаданные, где MyMetadata имеет значение HelloWorld.

<ItemGroup>
    <CSFile Include="engine.cs; form.cs" />
    <CSFile Include="main.cs" >
        <MyMetadata>HelloWorld</MyMetadata>
    </CSFile>
</ItemGroup>

См. также

Основные понятия

Элементы MSBuild

Свойства MSBuild

Справочные сведения о схеме файлов проектов MSBuild