2010-07-20 114 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

相關問題