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


Функции элементов

Начиная с MSBuild 4.0, код в задачах и целях может вызывать функции элементов для получения сведений об элементах проекта. Эти функции упрощают получение элементов Distinct() и занимают меньше времени, чем циклический просмотр всех элементов.

Строковые функции

Проекты могут вызывать любой метод свойства FX для элемента. Для элементов с несколькими строками функция выполняется по каждой сроке. Пример.

<x Include="a;b;cccc"/>
<z Include="@(x->get_Length())"/>

Возвращает z: 1;1;4

Прочие функции

Встроенные функции, доступные для элементов, перечислены в таблице ниже. В дополнение к этим функциям,

Функция

Пример

Описание

[DirectoryName]

@(MyItem->DirectoryName())

Возвращает свойство [DirectoryName] элементов в [itemsOfType].

[Metadata]

@(MyItem->Metadata("Name"))

Возвращает содержимое метаданных, указанных в элементе [argument[0]].

[DistinctWithCase]

@(AnItem->DistinctWithCase())

Возвращает элементы из [itemsOfType] с определенными значениями [Item1] в [Tuple]. При сравнении учитывается регистр.

[Distinct]

@(AnItem->Distinct())

Возвращает элементы из [itemsOfType] с определенными значениями [Item1] в [Tuple]. При сравнении регистр не учитывается.

[DistinctWithComparer]

@(MyItem->DistinctWithComparer())

Встроенная функция, которая возвращает элементы из [itemsOfType] с определенными значениями [Item1] в [Tuple]. При сравнении регистр не учитывается.

[ExpandQuotedExpressionFunction]

@(MyItem->ExpandQuotedExpressionFunction("@(Compile->'%(Trans)')"))

Встроенная функция, которая преобразует выражения вида %(Trans) in @(Compile->'%(Trans)').

[ClearMetadata]

@(MyItem->ClearMetadata())

Возвращает элементы из [itemsOfType] с очищенными метаданными. Таким образом, сохраняется только [itemspec].

[WithMetadataValue]

@(MyItem->WithMetadataValue("ItemType"))

Возвращает элементы с определенными метаданными. При сравнении регистр не учитывается.

[AnyHaveMetadataValue]

@(MyItem->AnyHavemetadataValue("ItemType"))

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