【问题标题】:How do I access the metadata of one particular item in an MSBuild ItemGroup?如何访问 MSBuild ItemGroup 中一个特定项目的元数据?
【发布时间】:2009-11-03 21:51:05
【问题描述】:

鉴于此项目组:

<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属性怎么写。

谢谢!

【问题讨论】:

    标签: .net msbuild


    【解决方案1】:

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

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

    【讨论】:

    • 如何在不使用 Message 的情况下将此值(“2”)放入字符串变量中?
    【解决方案2】:

    我不是 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 个元素中的第二个

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-11
      相关资源
      最近更新 更多