2010-07-20 8 views
31

Ho questo codice MSBuild:C'è qualche compito MSBuild per controllare se una stringa contiene un'altra stringa (simile a string.contains)

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

Ma mi chiedevo se c'è qualcosa di simile per controllare se una stringa contiene del testo per ottenere qualcosa di simile a:

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

risposta

13

MSBuild4: Come ha detto Julien, in MSBUILD 4 è possibile Funzione utente Proprietà.

MSBuild 3.x: Nelle versioni precedenti è possibile se si utilizza Tigris MsBuild Tasks

È possibile utilizzare Task REGEXMATCH e usare un'espressione regolare

-3

MsBuild Conditions reference non ha nulla circa la possibilità di una funzione di "contiene". Sembra che la tua prima versione sia l'unica opzione.

+0

Come altri hanno fatto notare, MSBuild 4 non lo fa aggiungi una nuova sintassi per le condizioni ma ti consente invece di utilizzare le funzioni di proprietà (http://blogs.msdn.com/b/msbuild/archive/2010/04/02/msbuild-property-functions.aspx). – BCran

67

Se si utilizza MSBuild 4, è possibile utilizzare Property function

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

(More info on Property function)

Problemi correlati