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