2010-07-20 5 views
31

Je msbuild ce code:Y at-il MSBuild pour vérifier si une chaîne contient une autre chaîne (similaire à string.contains)

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

Mais je me demandais s'il est quelque chose de semblable pour vérifier si une chaîne contient un texte pour obtenir quelque chose de similaire à:

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

Répondre

13

MSBuild4: Comme Julien dit, en MSBUILD 4 est possible à l'utilisateur Fonction de la propriété.

3.x MSBuild: Dans les versions précédentes est possible si vous utilisez Tigris MsBuild Tasks

Vous pouvez utiliser la tâche RegexMatch et utiliser une expression régulière

-3

MsBuild Conditions reference n'a rien sur la possibilité d'un « contient » fonction. On dirait que votre première version est la seule option.

+0

Comme d'autres l'ont souligné, MSBuild 4 ne pas ajouter une nouvelle syntaxe pour les conditions mais vous permet d'utiliser les fonctions de propriété à la place (http://blogs.msdn.com/b/msbuild/archive/2010/04/02/msbuild-property-functions.aspx). – BCran

67

Si vous utilisez MSBuild 4, vous pouvez utiliser Property function

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

(More info on Property function)

Questions connexes