とりわけ、プリプロセッサ定義を含むプロパティ グループを定義する .msbuild インポートがあります。
<PropertyGroup>
<DefineConstants>$(DefineConstants);MY_CONSTANT_VALUE</DefineConstants>
</PropertyGroup>
これは<import>、csproj ファイルと vcxproj ファイルの両方に編集されます。ビルド時に、C# プリプロセッサは定義された定数を認識していないように見えます。ただし、同じファイル内の同等の C++ プリプロセッサ定義は正しく機能し、定数が検出されます。
<ItemDefinitionGroup>
<ClCompile>
<PreprocessorDefinitions>$(PreProcessorDefinitions);MY_CONSTANT_VALUE</PreprocessorDefinitions>
</ClCompile>
<ItemDefinitionGroup>
これが C++ でのみ機能する理由はありますか?