Есть ли какая-либо задача MSbuild, чтобы проверить, содержит ли строка другую строку (похоже на string.contains) - PullRequest
37 голосов
/ 20 июля 2010

У меня есть этот код 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'"/>

Ответы [ 3 ]

80 голосов
/ 20 июля 2010

Если вы используете MSBuild 4, вы можете использовать Property function

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

( Подробнее о функции свойства )

15 голосов
/ 26 июля 2010

MSBuild4: Как сказал Жюльен, в MSBUILD 4 возможно пользовательское свойство Function.

MSBuild 3.x: В предыдущих версиях возможно, если вы используете Задачи Tigris MsBuild

Вы можете использовать задачу RegexMatch и использовать регулярное выражение

0 голосов
/ 20 июля 2010

MsBuild Ссылка на условия не имеет ничего о возможности "содержать" функцию.Похоже, ваша первая версия - единственный вариант.

...