다음을 통해 공유


항목 함수

MSBuild 4.0부터는 작업 및 대상의 코드가 항목 함수를 호출하여 프로젝트에 있는 항목에 대한 정보를 가져올 수 있습니다. 이러한 함수를 사용하면 Distinct() 항목을 간단하게 가져올 수 있으며, 항목에 대해 루프를 수행하는 것보다 속도가 빠릅니다.

문자열 함수

프로젝트가 한 항목에서 모든 FX 문자열 속성 메서드를 호출할 수 있습니다. 다중 문자열을 포함하는 항목의 경우 함수가 각 문자열에서 실행됩니다. 예를 들면 다음과 같습니다.

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

z: 1;1;4 반환

기타 함수

아래 표에서는 항목에 사용할 수 있는 내장 함수를 보여 줍니다. 이러한 함수 외에도

Function

예제

설명

[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을 반환합니다. 비교 시 대/소문자는 구분되지 않습니다.