2011-10-26 21 views
14

C'è un modo per rimuovere il contenuto di un ItemGroup senza ricorrere a Target? Sto cercando qualcosa di equivalente a:Empty an MSBuild ItemGroup

<ItemGroup> 
    <MyItemGroup Remove="@(MyItemGroup)"/> 
</ItemGroup> 

Grazie

risposta

2

Ora c'è.

What's New in MSBuild 15

  • Item Element obiettivi esterno ha un nuovo attributo Update. Inoltre, la restrizione sull'attributo Remove è stata eliminata.
+0

Fantastico. Upvoted! –

15

No, come gli stati di documentazione, Rimuovi possono essere inclusi solo in un'ItemGroup all'interno di una destinazione. Non sono sicuro del motivo per cui utilizzare un Target è un problema nel tuo caso, ma se vuoi utilizzare il passaggio "Rimuovi" per ogni configurazione di build, aggiungilo a uno degli hook di AfterXXXX AfterXXX, come BeforeBuild.

ItemGroup 'Remove' Documentation

A partire dal .NET Framework 3.5, gli elementi di destinazione possono contenere ItemGroup elementi che possono contenere elementi di articolo. Questi elementi elemento possono contenere l'attributo Rimuovi, che rimuove elementi specifici (file) dal tipo di elemento. Ad esempio, il seguente XML rimuove ogni file .config dal tipo di elemento Compile.

<Target> 
    <ItemGroup> 
    <Compile Remove="*.config"/> 
    </ItemGroup> 
</Target> 
+0

Hai ragione. Non è possibile farlo al di fuori di un obiettivo. Ho cancellato la mia risposta e ho selezionato la tua risposta come utile;) – Ludwo

+0

@Ludwo - Buono a sapersi. Pensavo di aver perso qualcosa. –

+0

Peccato. Grazie –