如何访问MSBuild ItemGroup中某个特定项的元数据?

时间:2009-11-03 21:51:05

标签: .net msbuild

鉴于此项目组:

<ItemGroup>
  <Foo Include="First">
    <Value>1</Value>
  </Foo>
  <Foo Include="Second">
    <Value>2</Value>
  </Foo>
</ItemGroup>

如何获取第二项(2)的Value元数据?我正在思考:

<Message Text="%(Foo.Value)" Condition="'' == 'Second'" />

但我不知道如何编写Condition属性。

谢谢!

2 个答案:

答案 0 :(得分:6)

身份元数据给出了项目的价值。

<Message Text="%(Foo.Value)" Condition="'%(Foo.Identity)' == 'Second'" />

答案 1 :(得分:1)

我不是msbuild的专家,但我怀疑这是可能的。我找到了一种解决方法,您可以在Foo组中添加另一个元数据标签,这将按照以下说明进行操作。

<ItemGroup>
    <Foo Include="First">
        <Value>1</Value>
        <Source>First</Source>
    </Foo>
    <Foo Include="Second">
        <Value>2</Value>
        <Source>Second</Source>
    </Foo>
    <Foo Include="Third">
        <Value>2</Value>
    </Foo>
</ItemGroup>

这样的条件只会打印上述3个元素中的第2个

<Message Text="%(Foo.Value)" Condition="'%(Foo.Source)' == 'Second'"  />