Предположим, у меня есть следующие элементы
<ItemGroup>
<Foo Include="a1">
<Key>a</Key>
</Foo>
<Foo Include="a2">
<Key>a</Key>
</Foo>
<Foo Include="b1">
<Key>b</Key>
</Foo>
<Bar Include="bar1">
<UseKey>a</UseKey>
</Bar>
<Bar Include="bar2">
<UseKey>b</UseKey>
</Bar>
</ItemGroup>
Теперь я хочу установить новый фрагмент метаданных под названием Foos
для Bar
элементов. Foos
содержит все элементы Foo, которые соответствуют Key
. Например, с помощью вышеупомянутых элементов я хочу, чтобы столбцы стали
<Bar Include="bar1">
<UseKey>a</UseKey>
<Foos>a1;a2</Foos>
</Bar>
<Bar Include="bar2">
<UseKey>b</UseKey>
<Foos>b1</Foos>
</Bar>
. Я пробовал что-то вроде следующего, но это не работает.
<Target>
<Bar>
<Foos>@(Foo->WithMetadataValue('Key', '%(Bar.UseKey)'))</Foos>
</Bar>
</Target>
Замена %(Bar.UseKey)
фактическим ключомзначение типа a
или b
выполняет фильтрацию Foos, как и ожидалось, но вместо фильтрации по фиксированному значению я хочу фильтровать по метаданным UseKey
на столбцах. Это может быть достигнуто с помощью msbuild или мне нужно пользовательское задание для этого?