Элемент 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 . |
Родительские элементы
Элемент |
Описание |
---|---|
Элемент, предназначенный для группировки отдельных элементов. |
Заметки
Элементы Item определяют входные данные для системы построения и группируются в коллекции элементов на основании заданных пользователем имен коллекций.Эти коллекции элементов можно использовать в качестве параметров для задач, в которых с помощью отдельных элементов из коллекции выполняются отдельные шаги процесса построения.Дополнительные сведения см. в разделе Элементы MSBuild.
Использование нотации @(myType) позволяет расширить коллекцию элементов типа myType до списка строк, разделенного точкой с запятой (;), и передать его в параметр.Если параметр имеет тип string, то его значением является список элементов, разделенных точкой с запятой.Если параметр представляет собой массив строк (string[]), каждый из элементов вставляется в массив исходя из положения точек с запятой.Если параметр задачи имеет тип ITaskItem[], то его значением является содержимое коллекции элементов со вложенными в них метаданными, если таковые имеются.Чтобы разделять элементы при помощи символа, отличного от точки с запятой, используйте синтаксис @(myType, 'separator').
Ядро MSBuild предусматривает вычисление подстановочных знаков * и ?, а также рекурсивных подстановочных знаков, таких как /**/*.cs.Дополнительные сведения см. в разделе Элементы MSBuild.
Пример
В следующем примере кода показано, как объявить два элемента типа CSFile.Второй объявляемый элемент содержит метаданные с атрибутом myAttribute, которому присвоено значение HelloWorld.
<ItemGroup>
<CSFile Include="engine.cs; form.cs" />
<CSFile Include="main.cs" >
<MyMetadata>HelloWorld</MyMetadata>
</CSFile>
</ItemGroup>