我知道我可以做以下事情
<PropertyGroup>
<Foo>Bar</Foo>
<Foo1>Bar1</Foo1>
<Foos>$(Foo) $(foo1)</Foos>
</PropertyGroup>
<Target Name="Def">
<Message Text="$(Foos)"/>
</Target>
并获取Bar Bar1
但是,如果PropertyGroup中有许多属性,则这种扩展性不会很好。
有没有办法引用PropertyGroup或其他某个节点并让MSBuild为您做出艰苦的工作?
我知道PropertyGroup元素不支持它,但想象能够做到
<PropertyGroup Name="Bob">
<Foo>Bar</Foo>
<Foo1>Bar 1</Foo1>
</PropertyGroup>
<Target Name="Def">
<Message Text="$(Bob)"/>
</Target>
并获取Bar Bar 1
答案 0 :(得分:1)
这可以使用ItemGroup和@()
表示法来实现。
示例
<ItemGroup>
<Foo Include="Bar"/>
<Foo Include="Bar1"/>
</ItemGroup>
<Message Text="@(Foo)"/>
打印Bar;Bar1
注意默认情况下@
符号以分号连接项目。我们可以通过第二个参数更改为@(..)
。
<ItemGroup>
<Foo Include="Bar"/>
<Foo Include="Bar1"/>
</ItemGroup>
<Message Text="@(Foo, ' ')"/>
打印Bar Bar1