这些解决方案有问题,可能是因为我的初始常数是由这些属性预先构建的。
<DefineConstants />
<DefineDebug>true</DefineDebug>
<DefineTrace>true</DefineTrace>
<DebugSymbols>true</DebugSymbols>
Visual Studio 2010还由于分号而引发错误,声称它们是非法字符。该错误消息给了我一个提示,因为我可以看到预构建的常量用逗号分隔,最后是我的“非法”分号。经过重新格式化和按摩后,我提出了一个对我有用的解决方案。
<PropertyGroup>
<!-- Adding a custom constant will auto-magically append a comma and space to the pre-built constants. -->
<!-- Move the comma delimiter to the end of each constant and remove the trailing comma when we're done. -->
<DefineConstants Condition=" !$(DefineConstants.Contains(', NET')) ">$(DefineConstants)$(TargetFrameworkVersion.Replace("v", "NET").Replace(".", "")), </DefineConstants>
<DefineConstants Condition=" $(DefineConstants.Contains(', NET')) ">$(DefineConstants.Remove($(DefineConstants.LastIndexOf(", NET"))))$(TargetFrameworkVersion.Replace("v", "NET").Replace(".", "")), </DefineConstants>
<DefineConstants Condition=" $(TargetFrameworkVersion.Replace('v', '')) >= 2.0 ">$(DefineConstants)NET_20_OR_GREATER, </DefineConstants>
<DefineConstants Condition=" $(TargetFrameworkVersion.Replace('v', '')) >= 3.5 ">$(DefineConstants)NET_35_OR_GREATER</DefineConstants>
<DefineConstants Condition=" $(DefineConstants.EndsWith(', ')) ">$(DefineConstants.Remove($(DefineConstants.LastIndexOf(", "))))</DefineConstants>
</PropertyGroup>
我将张贴“高级编译器设置”对话框的屏幕截图(通过单击项目的“编译”选项卡上的“高级编译选项...”按钮打开)。但是,作为新用户,我没有代表这样做。如果可以看到屏幕截图,您将看到属性组自动填充的自定义常量,然后您会说:“我一定要了解其中的一些内容。”
编辑:那个代表出奇地快..谢谢大家!这是该屏幕截图: