代码之家  ›  专栏  ›  技术社区  ›  Bob

如何检查属性中是否存在字符串

  •  0
  • Bob  · 技术社区  · 8 年前

    如果我有房地产

    <PropertyGroup>
      <MyProp>abd;efg;hij;klm</MyProp>
    </PropertyGroup>
    

    如何解析 $(MyProp) 检查是否存在 klm ?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Martin Ullrich    8 年前

    您可以使用 property functions 调用字符串 Contains() 方法来检查字符串是否出现。而其他一些选项使用项目(通过 Include="$(MyProp)" 并且检查是否存在具有预期标识的项)也是可能的,使用属性函数的条件可以在目标内外的任何msbuild元素上使用。

    例子:

    <Project>
      <PropertyGroup>
        <MyProp>abd;efg;hij;klm</MyProp>
      </PropertyGroup>
    
      <Target Name="Build">
        <Message Importance="high" Text="klm is included!" Condition="$(MyProp.Contains('klm'))" />
    
        <PropertyGroup>
          <MyProp>;$(MyProp);</MyProp>
        </PropertyGroup>
        <Message Importance="high" Text="exactly klm is included!" Condition="$(MyProp.Contains(';klm;'))" />
      </Target>
    </Project>
    

    第二种方法-预处理和附加 ; 并检查 ;klm; -确保列表中的字符串作为一个整体匹配,可以处理 ;aklm .