MSBuild任务批处理多个任务

ytr*_*ran 5 msbuild

我有一个包含2个步骤的MSBuild任务,为简单起见,我正在替换它<Message>.有两种模式必须作为参数传递给步骤.这两个步骤必须作为每个模式的一个单元运行.我尝试使用任务批处理,如下所示.

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

<Target Name="Build">
  <Message Text="Step1: %(Mode.Identity)" />
  <Message Text="Step2: %(Mode.Identity)" />
</Target>
Run Code Online (Sandbox Code Playgroud)

问题是每个步骤都是单独处理的,产生以下输出:

Step1: Mode1
Step1: Mode2
Step2: Mode1
Step2: Mode2
Run Code Online (Sandbox Code Playgroud)

有没有办法实现这个目标?

Step1: Mode1
Step2: Mode1
Step1: Mode2
Step2: Mode2
Run Code Online (Sandbox Code Playgroud)

Aar*_*son 6

您目前正在执行任务批处理.您要做的是通过指定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>
Run Code Online (Sandbox Code Playgroud)