J'ai eu des problèmes avec ces solutions, probablement parce que mes constantes initiales étaient pré-construites par ces propriétés.
<DefineConstants />
<DefineDebug>true</DefineDebug>
<DefineTrace>true</DefineTrace>
<DebugSymbols>true</DebugSymbols>
Visual Studio 2010 a également généré une erreur en raison des points-virgules, affirmant qu'il s'agissait de caractères illégaux. Le message d'erreur m'a donné un indice car je pouvais voir les constantes pré-construites séparées par des virgules, suivies finalement de mon point-virgule "illégal". Après quelques reformatages et massages, j'ai pu trouver une solution qui fonctionne pour moi.
<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>
Je publierais une capture d'écran de la boîte de dialogue Paramètres avancés du compilateur (ouverte en cliquant sur le bouton "Options de compilation avancées ..." sur l'onglet Compiler de votre projet). Mais en tant que nouvel utilisateur, je n'ai pas le représentant pour le faire. Si vous pouviez voir la capture d'écran, vous verriez les constantes personnalisées remplies automatiquement par le groupe de propriétés, puis vous diriez: "Je dois m'en procurer une partie".
EDIT: J'ai obtenu ce représentant étonnamment rapide .. Merci les gars! Voici cette capture d'écran: