私の初期定数がこれらのプロパティによって事前に作成されたためか、これらのソリューションに問題がありました。
<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>
(プロジェクトの[コンパイル]タブの[詳細コンパイルオプション...]ボタンをクリックして開かれる)[詳細コンパイラ設定]ダイアログのスクリーンショットを投稿します。しかし、新しいユーザーとして、私にはそうするための担当者がいません。スクリーンショットを見ることができれば、プロパティグループによって自動入力されるカスタム定数が表示され、「私はそれの一部を取得しなければならない」と言うでしょう。
編集:その担当者が驚くほど高速になりました。ありがとう。これがそのスクリーンショットです。