Элемент Item (MSBuild)
Обновлен: Ноябрь 2007
Содержит определяемый пользователем элемент и его метаданные. Каждый элемент, используемый в проекте MSBuild, должен быть задан как дочерний по отношению к элементу ItemGroup.
<Item Include="*.cs"
Exclude="MyFile.cs"
Condition="'String A'=='String B'" >
<ItemMetadata1>...</ItemMetadata1>
<ItemMetadata2>...</ItemMetadata2>
</Item>
Атрибуты и элементы
В следующих разделах описываются атрибуты, дочерние и родительские элементы.
Атрибуты
Атрибут |
Описание |
---|---|
Include |
Обязательный атрибут. Файл или подстановочный знак, подлежащий включению в элемент. |
Exclude |
Необязательный атрибут. Файл или подстановочный знак, подлежащий исключению из элемента. |
Condition |
Необязательный атрибут. Проверяемое условие. Дополнительные сведения см. в разделе Условия MSBuild. |
Дочерние элементы
Элемент |
Описание |
---|---|
Определяемый пользователем ключ метаданных элемента, содержащий значение метаданных элемента. Элемент 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>
</Item>
</ItemGroup>