Вопрос по – Проверка, если свойство 'начинается / заканчивается с' в csproj

14

Я устанавливаю некоторые конфигурации в моих файлах csproj, которые будут нацелены на разные версии фреймворка. В идеале мне нужны конфигурации «Debug - 3.5», «Debug - 4.0», «Release - 3.5». и 'Release - 4.0'.

В моем файле csproj я хочу сделать что-то вроде следующего:

<PropertyGroup Condition=" '${Configuration}' ends with '3.5' ">
    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
</PropertyGroup
<PropertyGroup Condition=" '${Configuration}' ends with '4.0' ">
    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
</PropertyGroup
... check for "starts with Debug" to define Optimize etc.

Однако я не знаю, как это проверить${Configuration} начинается / заканчивается определенной строкой. Есть простой способ сделать это?

Edit: Отмеченный ответ ниже указывает на правильное направление, которое привело меня к:

<PropertyGroup Condition="$(Configuration.Contains('Debug'))">
    ... setup pdb, optimize etc.
</PropertyGroup>
<PropertyGroup Condition="$(Configuration.Contains('3.5'))">
    ... set target framework to 3.5
</PropertyGroup>
... and so on for Release and 4.0 variations
Помеченный этим [msbuild] для вас, файл csproj - это просто файл msbuild, а дополнительный тег может привлечь внимание специалиста по msbuild. Jamiec
возможный дубликатIs there any MSbuild task to check if a string contains another string (similar to string.contains) Daniel A. White

Ваш Ответ

1   ответ
29

Свойство MSBuild является просто строкой .NET и имеетфункции собственности имеется в наличии.

Condition="$(Configuration.EndsWith('3.5'))"

Должно сработать

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded

Похожие вопросы