Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Содержит определяемый пользователем элемент и его метаданные. Каждый элемент, используемый в проекте MSBuild, должен быть указан как дочерний ItemGroup элемент элемента.
<Проект>
<ItemGroup>
<Пункт>
Синтаксис
<Item Include="*.cs"
Exclude="MyFile.cs"
Condition="'String A'=='String B'">
<ItemMetadata1>...</ItemMetadata1>
<ItemMetadata2>...</ItemMetadata2>
</Item>
Указание метаданных в качестве атрибутов
Метаданные элемента можно указать в качестве атрибутов для дочерних элементов. Любые метаданные с именем, не конфликтующим с текущим списком атрибутов, можно выразить как атрибут.
Например, чтобы указать список пакетов NuGet, обычно используется следующий синтаксис.
<ItemGroup>
<PackageReference Include="Newtonsoft.Json">
<Version>9.0.1-beta1<Version>
</PackageReference>
</ItemGroup>
Однако теперь можно передать метаданные Version в качестве атрибута, например в следующем синтаксисе:
<ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="9.0.1-beta1" />
</ItemGroup>
Атрибуты и элементы
В следующих разделах описаны атрибуты, дочерние элементы и родительские элементы.
Attributes
| Свойство | Description |
|---|---|
Include |
Необязательный атрибут. Файл или подстановочный знак для включения в список элементов. |
Exclude |
Необязательный атрибут. Файл или подстановочный знак, которые следует исключить из списка элементов. |
Condition |
Необязательный атрибут. Условие, которое необходимо оценить. Дополнительные сведения см. в разделе Условия. |
Remove |
Необязательный атрибут. Файл или подстановочный знак для удаления из списка элементов. |
MatchOnMetadata |
Необязательный атрибут.Remove Изменяет атрибуты, ссылающиеся на другие элементы, которые соответствуют указанным именам метаданных, а не совпадают со значениями ссылочных элементов. Этот атрибут действителен, только если он указан вместе с атрибутом Remove , который содержит только ссылки на другие элементы (например, Remove="@(Compile);@(Content)"). Дополнительные сведения о элементах. |
MatchOnMetadataOptions |
Необязательный атрибут. Указывает стратегию сопоставления строк, используемую MatchOnMetadata. Возможные значения: CaseSensitive, CaseInsensitiveили PathLike. Значение по умолчанию — CaseInsensitive. |
KeepDuplicates |
Необязательный атрибут. Указывает, следует ли добавить элемент в целевую группу, если он является точным дубликатом существующего элемента. Если исходный и целевой элемент имеют одно и то же Include значение, но разные метаданные, он добавляется даже в том случае, если KeepDuplicates задано значение false. Дополнительные сведения см. в разделе Элементы.Этот атрибут действителен, только если он указан для элемента в объекте, который ItemGroup находится в объекте Target. |
KeepMetadata |
Необязательный атрибут. Метаданные исходных элементов, добавляемые в целевые элементы. Только метаданные, имена которых указаны в списке с запятой, разделенные точкой с запятой, передаются из исходного элемента в целевой элемент. Дополнительные сведения см. в разделе Элементы. Этот атрибут действителен, только если он указан для элемента в объекте, который ItemGroup находится в объекте Target. |
RemoveMetadata |
Необязательный атрибут. Метаданные исходных элементов, которые не передаются целевым элементам. Все метаданные передаются из исходного элемента в целевой элемент, кроме метаданных, имена которых содержатся в списке имен с запятой. Дополнительные сведения см. в разделе Элементы. Этот атрибут действителен, только если он указан для элемента в объекте, который ItemGroup находится в объекте Target. |
Update |
Необязательный атрибут. (Доступно только для проектов .NET Core в Visual Studio 2017 или более поздней версии.) Позволяет изменять метаданные элемента; обычно используется для переопределения метаданных по умолчанию определенных элементов после первоначального указания группы элементов (например, с подстановочным знаком). Этот атрибут действителен только в том случае, если он указан для элемента в ней ItemGroupTarget. |
Дочерние элементы
| Элемент | Description |
|---|---|
| ItemMetadata | Определяемый пользователем ключ метаданных элемента, содержащий значение метаданных элемента. В элементе может быть нулевая или более ItemMetadata элементов. |
MSBuild интерпретирует дочерние элементы элементов в виде метаданных элемента.
Родительские элементы
| Элемент | Description |
|---|---|
| ItemGroup | Группирование элементов для элементов. |
Замечания
Item элементы определяют входные данные в систему сборки и группируются в коллекции элементов на основе имен определяемых пользователем коллекций. Эти коллекции элементов можно использовать в качестве параметров для задач, которые используют отдельные элементы в коллекциях для выполнения шагов процесса сборки. Дополнительные сведения см. в разделе Элементы.
Использование нотации @(<myType) позволяет развернуть коллекцию элементов типа <myType>> в список строк с запятой и передать параметру. Если параметр имеет тип string, то значение параметра — это список элементов, разделенных точкой с запятой. Если параметр является массивом строк (string[]), каждый элемент вставляется в массив в зависимости от расположения с запятой. Если параметр задачи имеет тип ITaskItem[], значение — это содержимое коллекции элементов вместе с любыми метаданными, подключенными. Чтобы разделять каждый элемент с помощью символа, отличного от точки с запятой, используйте синтаксис @(<myType>, разделитель<>).
Модуль MSBuild может оценивать подстановочные знаки, такие как и ? рекурсивные подстановочные знаки, такие как */**/*.cs. Дополнительные сведения см. в разделе Элементы.
Примеры
В следующем примере кода показано, как объявить два элемента типа CSFile. Второй объявленный элемент содержит метаданные, которые имеют MyMetadata значение HelloWorld.
<ItemGroup>
<CSFile Include="engine.cs; form.cs" />
<CSFile Include="main.cs" >
<MyMetadata>HelloWorld</MyMetadata>
</CSFile>
</ItemGroup>
В следующем примере кода показано, как использовать Update атрибут для изменения метаданных в файле с именем somefile.cs , который был включен через глоб. (Доступно только для проектов .NET Core в Visual Studio 2017 или более поздней версии.)
<ItemGroup>
<Compile Update="somefile.cs"> // or Update="*.designer.cs"
<MetadataKey>MetadataValue</MetadataKey>
</Compile>
</ItemGroup>