Как вы фильтруете ItemGroup?
Я пытаюсь создать отфильтрованную группу элементов из другой, где отфильтрованная группа элементов будет содержать только элементы из первой группы с указанным расширением файла.
Я получаю следующую ошибку:
ошибка MSB4190: ссылка на встроенные метаданные «Расширение» в позиции 1 недопустима в этом состоянии «% (расширение)» == '. sys' ».
Когда я запускаю это:
<?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>
Во-первых, я не могу понять, почему метаданные не разрешены в этой позиции? Это какое-то искусственное ограничение или неосуществленная часть msbuild?
Во-вторых, каков краткий способ достижения такого преобразования?
Большое спасибо.