Jak filtrować grupę przedmiotów?
Próbuję utworzyć filtrowaną grupę elementów z innej, w której grupa filtrowanych elementów zawiera tylko elementy z pierwszej grupy, które mają określone rozszerzenie pliku.
Dostaję następujący błąd:
błąd MSB4190: Odwołanie do wbudowanych metadanych „Rozszerzenie” na pozycji 1 nie jest dozwolone w tym warunku „”% (rozszerzenie) ”==”. sys ””.
Kiedy to uruchomię:
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
DefaultTargets="Go"
ToolsVersion="4.0">
<ItemGroup>
<Files Include="X.exe"/>
<Files Include="Y.sys"/>
</ItemGroup>
<ItemGroup>
<SysFiles Include="%(Files.Identity)" Condition="'%(Extension)'=='.sys'">
</SysFiles>
</ItemGroup>
<Target Name="Go">
<Message Text="SysFiles=@(SysFiles)"/>
</Target>
</Project>
Po pierwsze, nie mogę zrozumieć, dlaczego metadane nie są dozwolone w tej pozycji? Czy to jakieś sztuczne ograniczenie lub niezrealizowana część msbuild?
Po drugie, jaki jest zwięzły sposób na osiągnięcie tego rodzaju transformacji?
Dziękuję bardzo.