Come si filtra un Gruppo articoli esistente in base a una condizione specifica, come l'estensione del file oi metadati dell'oggetto?Filtra un gruppo articoli esistente in modo che includa solo file che corrispondono ad alcune condizioni
Per questo esempio, utilizzerò l'estensione del file. Sto provando a filtrare il gruppo di elementi "Nessuno" definito da VS in modo che il mio obiettivo possa operare su tutti i file di una determinata estensione.
Per esempio, possono essere definiti i seguenti:
<ItemGroup>
<None Include="..\file1.ext" />
<None Include="..\file2.ext" />
<None Include="..\file.ext2" />
<None Include="..\file.ext3" />
<None Include="..\file.ext4" />
</ItemGroup>
voglio filtrata del 'None' ItemGroup sopra in modo che includa solo l'estensione ext
. Nota che faccio non voglio specificare tutte le estensioni da escludere, poiché variano a seconda del progetto e sto cercando di rendere il mio obiettivo riutilizzabile senza modifiche.
Ho provato ad aggiungere un Condition
all'interno di un obiettivo:
<Target Name="Test">
<ItemGroup>
<Filtered
Include="@(None)"
Condition="'%(Extension)' == 'ext'"
/>
</ItemGroup>
<Message Text="None: '%(None.Identity)'"/>
<Message Text="Filtered: '%(Filtered.Identity)'"/>
</Target>
Ma, purtroppo, non funziona. Ottengo i seguenti per l'uscita:
Test:
None: '..\file1.ext'
None: '..\file2.ext'
None: '..\file.ext2'
None: '..\file.ext3'
None: '..\file.ext4'
Filtered: ''
credo% (estensione) ha bisogno di essere '.ext' –
'% (Estensione)' deve essere espanso all'estensione dell'elemento in '@ (Nessuno)' viene esaminato che è ciò che voglio comparato a 'ext', l'estensione di destinazione. –
Voglio dire che ha letteralmente bisogno di essere ".ext", come in un punto come primo carattere, funziona bene allora. –