您的示例似乎在 VS2010 中运行良好。
这是我尝试过的:
<PropertyGroup>
<DefineConstants Condition=" $(TargetFrameworkVersion.Replace('v', '')) >= 3.5 ">$(DefineConstants);TEST1</DefineConstants>
<DefineConstants Condition=" $(TargetFrameworkVersion.SubString(1,3)) >= 3.5 ">$(DefineConstants);TEST2</DefineConstants>
<DefineConstants Condition=" $(TargetFrameworkVersion.SubString(1,3)) >= 4.0 ">$(DefineConstants);TEST3</DefineConstants>
<DefineConstants Condition=" $(TargetFrameworkVersion.SubString(1,3)) >= 4.5 ">$(DefineConstants);TEST4</DefineConstants>
</PropertyGroup>
编辑:
但是由于您使用的是 VS2008,因此您可以使用 the 并执行类似的操作
<Choose>
<When Condition=" $(TargetFrameworkVersion) == 'v3.5' ">
<PropertyGroup>
<DefineConstants >$(DefineConstants);TEST1</DefineConstants>
</PropertyGroup>
</When>
</Choose>