项函数

从 MSBuild 4.0 开始,任务和目标中的代码可以调用项函数,以获取有关项目中的项的信息。 这些函数简化了获取 Distinct() 项的过程,比循环访问各个项的速度更快。

字符串函数

项目可对项调用任何 FX 字符串属性方法。 对于包含多个字符串的项,会对每个字符串运行函数。 例如:

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

返回 z: 1;1;4

其他函数

下表列出了可用于项的内部函数。 除这些函数外,

函数

示例

说明

[DirectoryName]

@(MyItem->DirectoryName())

返回 [itemsOfType] 中的项的 [DirectoryName]。

[Metadata]

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

返回 [argument[0]] 中指定的元数据的内容。

[DistinctWithCase]

@(AnItem->DistinctWithCase())

从 [itemsOfType] 中返回在 [Tuple] 中具有不同 [Item1] 值的项。 比较是区分大小写的。

[Distinct]

@(AnItem->Distinct())

从 [itemsOfType] 中返回在 [Tuple] 中具有不同 [Item1] 值的项。 比较不区分大小写。

[DistinctWithComparer]

@(MyItem->DistinctWithComparer())

可从 [itemsOfType] 中返回在 [Tuple] 中具有不同 [Item1] 值的项的内部函数。 比较不区分大小写。

[ExpandQuotedExpressionFunction]

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

可转换类似于 %(Trans) in @(Compile->'%(Trans)') 的表达式的内部函数。

[ClearMetadata]

@(MyItem->ClearMetadata())

从 [itemsOfType] 返回项并清除项的元数据,即, 仅保留 [itemspec]。

[WithMetadataValue]

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

返回具有给定元数据的项。 比较不区分大小写。

[AnyHaveMetadataValue]

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

返回 boolean 以指示是否有任何项具有给定元数据。 比较不区分大小写。