27

我正在我的 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
4

1 回答 1

60

MSBuild 属性只是一个 .NET 字符串,并且具有可用的属性函数

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

应该管用

于 2012-05-28T12:38:18.420 回答