首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带条件的MSBuild ItemGroup

带条件的MSBuild ItemGroup
EN

Stack Overflow用户
提问于 2012-10-22 19:50:07
回答 1查看 10.4K关注 0票数 9

我不知道ItemGroup是否是正确的类型。我将得到4个不同的布尔值,这将是真或假,这取决于选择。

我想用这个“字符串”填充一个ItemGroup,这取决于真或假。这是可能的吗?或者我应该使用什么?

示例

代码语言:javascript
复制
Anders = true
Peter = false
Michael = false
Gustaf = true

我的ItemGroup应该有Anders和Gustaf。

这是可能的吗?或者我应该如何解决它?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-22 21:08:29

既然你有一大堆项目,最好从一开始就将它们存储在ItemGroup中,因为毕竟这就是它的目的,而且它还允许转换等。例如,这可以实现你想要的:

代码语言:javascript
复制
<ItemGroup>
  <Names Include="Anders">
    <Value>True</Value>
  </Names>
  <Names Include="Peter">
    <Value>False</Value>
  </Names>
  <Names Include="Michael">
    <Value>False</Value>
  </Names>
  <Names Include="Gustaf">
    <Value>True</Value>
  </Names>
</ItemGroup>

<Target Name="GetNames">

  <ItemGroup>
    <AllNames Include="%(Names.Identity)" Condition="%(Names.Value)==true"/>
  </ItemGroup>

  <Message Text="@(AllNames)"/>  <!--AllNames contains Anders and Gustaf-->
</Target>

然而,如果它们必须是属性,我认为除了像这样手动枚举它们之外,没有其他方法:

代码语言:javascript
复制
<PropertyGroup>
  <Anders>True</Anders>
  <Peter>False</Peter>
  <Michael>False</Michael>
  <Gustaf>True</Gustaf>
</PropertyGroup>

<Target Name="GetNames">

  <ItemGroup>
    <AllNames Include="Anders" Condition="$(Anders)==true"/>
    <AllNames Include="Peter" Condition="$(Peter)==true"/>
    <AllNames Include="Michael" Condition="$(Michael)==true"/>
    <AllNames Include="Gustaf" Condition="$(Gustaf)==true"/>
  </ItemGroup>

  <Message Text="@(AllNames)"/>
</Target>
票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13010851

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档