次の方法で共有


項目用の関数

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())

[Tuple] で異なる [Item1] 値を持つ [itemsOfType] の項目を返します。 比較では、大文字と小文字を区別します。

[Distinct]

@(AnItem->Distinct())

[Tuple] で異なる [Item1] 値を持つ [itemsOfType] の項目を返します。 比較では、大文字と小文字を区別しません。

[DistinctWithComparer]

@(MyItem->DistinctWithComparer())

[Tuple] で異なる [Item1] 値を持つ [itemsOfType] の項目を返す組み込み関数です。 比較では、大文字と小文字を区別しません。

[ExpandQuotedExpressionFunction]

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

%(Trans) in @(Compile->'%(Trans)') のように式を変換する組み込み関数です。

[ClearMetadata]

@(MyItem->ClearMetadata())

メタデータが消去された [itemsOfType] の項目を返します (つまり、 [itemspec] のみ保持されます)。

[WithMetadataValue]

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

指定されたメタデータを持つ項目を返します。 比較では、大文字と小文字を区別しません。

[AnyHaveMetadataValue]

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

指定されたメタデータを持つ項目があるかどうかを示す boolean を返します。 比較では、大文字と小文字を区別しません。