在csproj中检查属性是否“开始/结束”

时间:2012-05-28 12:33:07

标签: msbuild

我在我的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}是否以特定字符串开头/结尾。有一个简单的方法吗?

修改:下面标记的答案指出了我正确的方向,这导致我选择:

<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

1 个答案:

答案 0 :(得分:31)

MSBuild属性只是一个.NET字符串,并且property functions可用。

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

应该工作