2010-07-20 89 views
31

我有这样的MSBuild代码:是否有任何MSBuild任务检查一个字符串包含另一个字符串(类似于string.contains)

<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'"/> 

回答

13

MSBuild4:作为朱利安说,在MSBUILD 4可以用户属性函数。

的MSBuild 3.X:在以前的版本中是可能的,如果你使用Tigris MsBuild Tasks

您可以使用任务REGEXMATCH和使用正则表达式

-3

的MSBuild Conditions reference没有关于“包含”功能的可能性东西。看起来你的第一个版本是唯一的选择。

+0

正如其他人所指出的那样,MSBuild的4不为条件添加新的语法,但可以使用属性函数(http://blogs.msdn.com/b/msbuild/archive/2010/04/02/msbuild-property-functions.aspx)。 – BCran 2013-04-23 10:01:17

67

如果您使用的MSBuild 4,你可以使用Property function

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

More info on Property function

相关问题