У меня были проблемы с этими решениями, возможно, потому, что мои исходные константы были заранее созданы этими свойствами.
<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>
Я бы разместил снимок экрана с диалоговым окном «Дополнительные параметры компиляции» (открываемым нажатием кнопки «Дополнительные параметры компиляции ...» на вкладке «Компиляция» вашего проекта). Но как новому пользователю мне не хватает репутации для этого. Если бы вы могли видеть снимок экрана, вы бы увидели, что пользовательские константы автоматически заполняются группой свойств, а затем вы бы сказали: «Мне нужно кое-что из этого».
РЕДАКТИРОВАТЬ: Получил эту репутацию на удивление быстро .. Спасибо, ребята! Вот этот снимок экрана: