如果我有财产
<PropertyGroup>
<MyProp>abd;efg;hij;klm</MyProp>
</PropertyGroup>
如何解析$(MyProp)
以检查是否存在klm
?
答案 0 :(得分:1)
您可以使用property functions来调用字符串Contains()
方法来检查字符串的出现次数。虽然使用Items的一些其他选项(通过Include="$(MyProp)"
并检查是否存在具有预期身份的项目)也是可能的,但使用属性函数的条件可以用于任何msbuild元素,包括目标内部和外部。 / p>
示例:
<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
。