Я настраиваю некоторые конфигурации в своих файлах csproj, которые будут нацелены на разные версии фреймворка. В идеале мне нужны конфигурации «Debug - 3.5», «Debug - 4.0», «Release - 3.5» и «Release - 4.0».C# Проверка того, что свойство «Начинается/заканчивается с» в csproj
В моем файле 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
Возможный дубликат [Есть ли какая-либо задача MSbuild, чтобы проверить, содержит ли строка другую строку (аналогично string.contains)] (http://stackoverflow.com/questions/3289538/is-there-any-msbuild-task-to -check-if-a-string-contains-another-string-like) –