Eu tive problemas com essas soluções, possivelmente porque minhas constantes iniciais foram pré-criadas por essas propriedades.
<DefineConstants />
<DefineDebug>true</DefineDebug>
<DefineTrace>true</DefineTrace>
<DebugSymbols>true</DebugSymbols>
O Visual Studio 2010 também gerou um erro por causa dos pontos e vírgulas, alegando que são caracteres ilegais. A mensagem de erro me deu uma dica, pois eu pude ver as constantes pré-construídas separadas por vírgulas, eventualmente seguidas pelo meu ponto-e-vírgula "ilegal". Depois de reformatar e massagear, consegui encontrar uma solução que funcionasse para mim.
<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>
Eu publicaria uma captura de tela da caixa de diálogo Configurações avançadas do compilador (aberta clicando no botão "Opções avançadas de compilação ..." na guia Compilar do seu projeto). Mas, como novo usuário, não tenho o representante para fazê-lo. Se você pudesse ver a captura de tela, veria as constantes personalizadas preenchidas automaticamente pelo grupo de propriedades e então diria: "Tenho que conseguir um pouco disso".
EDIT: Peguei aquele representante surpreendentemente rápido .. Obrigado pessoal! Aqui está a captura de tela: