Miałem problemy z tymi rozwiązaniami, być może dlatego, że moje początkowe stałe zostały wstępnie zbudowane przez te właściwości.
<DefineConstants />
<DefineDebug>true</DefineDebug>
<DefineTrace>true</DefineTrace>
<DebugSymbols>true</DebugSymbols>
Visual Studio 2010 również zwrócił błąd z powodu średników, twierdząc, że są to niedozwolone znaki. Komunikat o błędzie dał mi wskazówkę, ponieważ mogłem zobaczyć wstępnie zbudowane stałe oddzielone przecinkami, po których ostatecznie występuje mój „nielegalny” średnik. Po ponownym sformatowaniu i zmasowaniu udało mi się znaleźć rozwiązanie, które działa dla mnie.
<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>
Chciałbym opublikować zrzut ekranu okna dialogowego Zaawansowane ustawienia kompilatora (otwieranego przez kliknięcie przycisku „Zaawansowane opcje kompilacji ...” na karcie Kompiluj projektu). Ale jako nowy użytkownik brakuje mi przedstawiciela, aby to zrobić. Gdybyś mógł zobaczyć zrzut ekranu, zobaczyłbyś niestandardowe stałe wypełniane automatycznie przez grupę właściwości, a następnie powiedziałbyś: „Muszę coś dla mnie przynieść”.
EDYCJA: Mam tego przedstawiciela zaskakująco szybko ... Dzięki! Oto ten zrzut ekranu: