Я пишу скрипт для msbuild, который должен делать две партии за один шаг.
Пример: 2 ItemGroups
<ItemGroup>
<GroupOne Include="1" />
<GroupOne Include="2" />
</ItemGroup>
<ItemGroup>
<GroupTwo Include="A" />
<GroupTwo Include="B" />
</ItemGroup>
Эти две группы должны быть соединены друг с другом:
<Message Text="%(GroupOne.Identity) %(GroupTwo.Identity)" />
Я надеялся, что msbuild сделает результат из обеих партий, давая
1 A
2 A
1 B
2 B
как результат.
Но этого не произошло. Вместо этого он вернул следующее бесполезное дерьмо:
1
2
A
B
Делаем так, как предлагает блог из ссылки ниже (используя локальную группу свойств), как
<PropertyGroup>
<GroupOneStep>%(GroupOne.Identity)</GroupOneStep>
</PropertyGroup>
<Message Text="$(GroupOneStep) %(GroupTwo.Identity)" />
делает
2 A
2 B
Есть намеки? Я схожу с ума. : - (
PS: Вот пост в блоге на эту тему - к сожалению, он не работает так, как там сказано:
http://blogs.msdn.com/b/giuliov/archive/2010/04/30/gotcha-msbuild-nested-loops-double-batching.aspx