是否有任何MSbuild任务来检查字符串是否包含其他字符串(类似于string.contains)

是否有任何MSbuild任务来检查字符串是否包含其他字符串(类似于string.contains),msbuild,msbuild-task,Msbuild,Msbuild Task,我有以下Msbuild代码: <Import Project="A.proj" Condition="$(BuildDefinition) =='Dist Staging to Dev' Or $(BuildDefinition) =='Dist Staging to Dev(Services Only)'"/> 但我想知道是否有类似的方法来检查字符串是否包含一些文本以获得类似的内容: <Import Project="A.proj" Condition="$(Build

我有以下Msbuild代码:

<Import Project="A.proj" Condition="$(BuildDefinition) =='Dist Staging to Dev' Or $(BuildDefinition) =='Dist Staging to Dev(Services Only)'"/>

但我想知道是否有类似的方法来检查字符串是否包含一些文本以获得类似的内容:

<Import Project="A.proj" Condition="$(BuildDefinition) CONTAINS 'Dist Staging to Dev'"/>

MsBuild没有任何关于“contains”函数可能性的信息。看起来第一个版本是唯一的选项。

如果使用MSBuild 4,则可以使用
属性函数

<Import Project="A.proj" 
        Condition="$(BuildDefinition.Contains('Dist Staging to Dev'))"/>


()

MSBuild4:正如Julien所说,在MSBuild4中,可以使用用户属性函数

MSBuild 3.x:如果使用


您可以使用taskRegexMatch并使用正则表达式

,正如其他人所指出的,MSBuild 4没有为条件添加新语法,而是允许您使用属性函数()。虽然语法似乎有点违反直觉,但仍然有效。。。在您的示例中,如果条件的结果为true,则可能会读取condition=“$(true)”。如果使用或-condition=“$(true)或$(false)”。那么美元(…)有什么作用呢?它是执行括号之间的内容,还是在执行之前将其写入条件表达式?