2013-09-27 7 views
3

У меня есть задача MSBuild с двумя шагами, которые для простоты я заменяю на <Message>. Существует два режима, которые необходимо передать шагам в качестве параметров. Эти два шага должны выполняться как единое целое для каждого режима. Я попытался использовать пакет задач, как показано ниже.MSBuild Task Batching для нескольких задач

<ItemGroup> 
    <Mode Include="Mode1" /> 
    <Mode Include="Mode2" /> 
</ItemGroup> 

<Target Name="Build"> 
    <Message Text="Step1: %(Mode.Identity)" /> 
    <Message Text="Step2: %(Mode.Identity)" /> 
</Target> 

Проблема заключается в том, что каждый шаг рассматривается отдельно, генерируя следующий вывод:

Step1: Mode1 
Step1: Mode2 
Step2: Mode1 
Step2: Mode2 

Есть ли способ для достижения этой цели?

Step1: Mode1 
Step2: Mode1 
Step1: Mode2 
Step2: Mode2 

ответ

4

В настоящее время вы делаете Task Batching. То, что вы хотите сделать, это Target Batching, указав выходы Target.

<ItemGroup> 
    <Mode Include="Mode1" /> 
    <Mode Include="Mode2" /> 
</ItemGroup> 

<Target Name="Build" Outputs="%(Mode.Identity)" > 
    <Message Text="Step1: %(Mode.Identity)" /> 
    <Message Text="Step2: %(Mode.Identity)" /> 
</Target> 
+0

Отлично, спасибо! – ytran

Смежные вопросы