Funzioni degli elementi

A partire da MSBuild 4.0, il codice delle attività e delle destinazioni può chiamare le funzioni dell'elemento per ottenere informazioni sugli elementi nel progetto. Queste funzioni consentono di ottenere in modo più semplice gli elementi Distinct() e sono più rapide rispetto allo scorrimento in ciclo degli elementi.

Funzioni stringa

I progetti possono chiamare qualsiasi metodo di proprietà di stringa FX su un elemento. Per elementi con più stringhe, la funzione viene eseguita su ogni stringa. Ad esempio:

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

Restituisce z: 1;1;4

Altre funzioni

Nella tabella seguente sono elencate le funzioni intrinseche disponibili per gli elementi. Oltre a queste funzioni,

Funzione

Esempio

Descrizione

[DirectoryName]

@(MyItem->DirectoryName())

Restituisce l'oggetto [DirectoryName] degli elementi in [itemsOfType].

[Metadata]

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

Restituisce il contenuto dei metadati specificati in [argument[0]].

[DistinctWithCase]

@(AnItem->DistinctWithCase())

Restituisce elementi da [itemsOfType] con valori [Item1] distinti in [Tuple]. Per il confronto viene applicata la distinzione tra maiuscole e minuscole.

[Distinct]

@(AnItem->Distinct())

Restituisce elementi da [itemsOfType] con valori [Item1] distinti in [Tuple]. Il confronto viene eseguito senza distinzione tra maiuscole e minuscole.

[DistinctWithComparer]

@(MyItem->DistinctWithComparer())

Funzione intrinseca che restituisce elementi da [itemsOfType] con valori [Item1] distinti in [Tuple]. Il confronto viene eseguito senza distinzione tra maiuscole e minuscole.

[ExpandQuotedExpressionFunction]

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

Funzione intrinseca che trasforma espressioni come la seguente: %(Trans) in @(Compile->'%(Trans)').

[ClearMetadata]

@(MyItem->ClearMetadata())

Restituisce elementi da [itemsOfType] con i metadati cancellati, vale a dire che viene mantenuto solo [itemspec].

[WithMetadataValue]

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

Restituisce gli elementi che dispongono dei metadati specificati. Il confronto viene eseguito senza distinzione tra maiuscole e minuscole.

[AnyHaveMetadataValue]

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

Restituisce un oggetto boolean per indicare se qualsiasi elemento dispone dei metadati specificati. Il confronto viene eseguito senza distinzione tra maiuscole e minuscole.