Sdílet prostřednictvím


Funkce položek

Počínaje MSBuild 4.0, kód v úkoly a cíle můžete volat funkce položku získat informace o položkách v projektu.Tyto funkce zjednodušují získávání Distinct() položky a jsou rychlejší než prostřednictvím položky opakování.

Funkce řetězce položky

V rozhraní.NET Framework na libovolnou hodnotu položky můžete použít řetězec metody a vlastnosti.Pro String metod, zadejte název metody.Pro String vlastnosti, zadejte název vlastnosti za "get_".

Pro položky, které mají více řetězců řetězec metoda nebo vlastnost pracuje na každý řetězec.

Následující příklad ukazuje způsob použití těchto funkcí pro řetězce položky.

<ItemGroup>
    <theItem Include="andromeda;tadpole;cartwheel" />
</ItemGroup>

<Target Name = "go">
    <Message Text="IndexOf  @(theItem->IndexOf('r'))" />
    <Message Text="Replace  @(theItem->Replace('tadpole', 'pinwheel'))" />
    <Message Text="Length   @(theItem->get_Length())" />
    <Message Text="Chars    @(theItem->get_Chars(2))" />
</Target>

  <!--
  Output:
    IndexOf  3;-1;2
    Replace  andromeda;pinwheel;cartwheel
    Length   9;7;9
    Chars    d;d;r
  -->

Vnitřní funkce položky

Následující tabulka obsahuje vnitřní funkce, které jsou k dispozici pro položky.

Function

Příklad

Description

Count

@(MyItem->Count())

Vrátí počet položek.

DirectoryName

@(MyItem->DirectoryName())

Vrátí ekvivalent Path.DirectoryName pro každou položku.

Distinct

@(MyItem->Distinct())

Vrátí položky, které mají odlišné Include hodnoty.Metadata je ignorována.Porovnání je malá a velká písmena.

DistinctWithCase

@(MyItem->DistinctWithCase())

Vrátí položky, které mají odlišné itemspec hodnoty.Metadata je ignorována.Porovnání je malá a velká písmena.

Reverse

@(MyItem->Reverse())

Vrátí položky v obráceném pořadí.

AnyHaveMetadataValue

@(MyItem->AnyHaveMetadataValue("MetadataName", "MetadataValue"))

Vrátí boolean označuje, zda položky obsahuje metadata pro daný název a hodnotu.Porovnání je malá a velká písmena.

ClearMetadata

@(MyItem->ClearMetadata())

Vrátí položky s jejich metadat zrušeno.Pouze itemspec je zachován.

HasMetadata

@(MyItem->HasMetadataValue("MetadataName")

Vrátí položky, které mají název dané metadat.Porovnání je malá a velká písmena.

Metadata

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

Vrátí hodnoty metadat, které mají název metadat.

WithMetadataValue

@(MyItem->WithMetadataValue("MetadataName", "MetadataValue")

Vrací název dané metadat a hodnotu položky.Porovnání je malá a velká písmena.

Následující příklad ukazuje použití funkce vnitřní položky.

<ItemGroup>
    <TheItem Include="first">
        <Plant>geranium</Plant>
    </TheItem>
    <TheItem Include="second">
        <Plant>algae</Plant>
    </TheItem>
    <TheItem Include="third">
        <Plant>geranium</Plant>
    </TheItem>
</ItemGroup>

<Target Name="go">
    <Message Text="MetaData:    @(TheItem->Metadata('Plant'))" />
    <Message Text="HasMetadata: @(theItem->HasMetadata('Plant'))" />
    <Message Text="WithMetadataValue: @(TheItem->WithMetadataValue('Plant', 'geranium'))" />
    <Message Text=" " />
    <Message Text="Count:   @(theItem->Count())" />
    <Message Text="Reverse: @(theItem->Reverse())" />
</Target>

  <!-- 
  Output:
    MetaData:    geranium;algae;geranium
    HasMetadata: first;second;third
    WithMetadataValue: first;third
   
    Count:   3
    Reverse: third;second;first
  -->

Viz také

Koncepty

Položky nástroje MSBuild