Задача CreateItem
Обновлен: Ноябрь 2007
Заполнение коллекции элементов входными элементами. Это позволяет копировать элементы из одного списка в другой.
Атрибуты
В следующей таблице описаны параметры задачи CreateItem.
Параметр |
Описание |
---|---|
AdditionalMetadata |
Необязательный параметр String. Дополнительные спецификации метаданных, добавляемых к выходным элементам. Для имени и значения метаданных выбранного элемента используется следующий синтаксис: MetadataName=MetadataValue Несколько пар имен и значений метаданных разделяются точкой с запятой. Если в имени или значении содержится символ "точка с запятой" или другие специальные знаки, то их необходимо заменять на escape-знаки. Дополнительные сведения см. в разделе Как обеспечить пропуск специальных знаков в MSBuild. |
Exclude |
Необязательный параметр ITaskItem[]. Элементы, исключаемые из выходной коллекции элементов. В этом параметре могут содержаться спецификации подстановочных знаков. Дополнительные сведения см. в разделах Элементы MSBuild и Как собрать в каталоге все файлы, кроме одного. |
Include |
Необязательный выходной параметр ITaskItem[]. Элементы, включаемые в выходную коллекцию. В этом параметре могут содержаться спецификации подстановочных знаков. |
Пример
В приведенном ниже примере кода показано, как создать новую коллекцию элементов с именем MySourceItemsWithMetadata из коллекции элементов MySourceItems. Задача CreateItem заполняет новую коллекцию элементов элементами из коллекции MySourceItems, содержащего запись метаданных MyAddMetadata со значением true. Затем эта задача добавляет дополнительную запись метаданных MyMetadata со значением Hello в каждый элемент нового набора.
После выполнения задачи в коллекции элементов MySourceItemsWithMetadata содержатся элементы file1.resx и file3.resx, содержащие записи метаданных MyAddMetadata и MyMetadata. Коллекция элементов MySourceItems остается без изменений.
<Project xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<MySourceItems Include="file1.resx;file3.resx">
<MyAddMetadata>true</MyAddMetadata>
</MySourceItems>
<MySourceItems Include="file2.resx">
<MyAddMetadata>false</MyAddMetadata>
</MySourceItems>
</ItemGroup>
<PropertyGroup>
<MyValue>Hello</MyValue>
</PropertyGroup>
<Target Name="NewItems">
<CreateItem
Include="@(MySourceItems)"
Condition="'%(MyAddMetadata)'=='true'"
AdditionalMetadata="MyMetadata=$(MyValue)">
<Output
TaskParameter="Include"
ItemName="MySourceItemsWithMetadata"/>
</CreateItem>
</Target>
</Project>
В следующей таблице описано значение выходного элемента после выполнения задачи. Метаданные элемента показаны справа в круглых скобках.
Коллекция элементов |
Содержание |
---|---|
MySourceItemsWithMetadata |
file1.resx (MyMetadata="Hello") file3.resx (MyMetadata="Hello") |