MSBuild batching multiple inputs into each output

Viewed 4531

Is it possible to dependency-check multiple inputs for each output when using MSBuild batching?

I thought I'd found a solution to this by constructing my inputs list in the metadata of the output file, as follows:

<ItemGroup>
  <Foo Include="output1">
    <Inputs>input1a;input1b</Inputs>
  </Foo>
  <Foo Include="output2">
    <Inputs>input2a;input2b</Inputs>
  </Foo>
</ItemGroup>

<Target Name="_CompileFoo" Outputs="@(Foo)" Inputs="%(Foo.Inputs)">
    <FooCompiler Src="%(Foo.Inputs)" Out="@(Foo)" />
</Target>

However, MSBuild complains that the file "input1a;input1b" does not exist. It seems that the string->items conversion takes place before the expression evaluation.

Is there any solution to this other than writing my own dependency checking?

1 Answers
Related