0

とりわけ、プリプロセッサ定義を含むプロパティ グループを定義する .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++ でのみ機能する理由はありますか?

4

1 に答える 1

0

デフォルトのプロパティ グループ宣言は、以前に存在し、次のように定義されたプロパティには対応していません。

<DefineConstants>TRACE</DefineConstants>

したがって、.csproj.vbproj の最初ではなく、最後に.msbuild ファイルをインポートしていることを確認してください。

これで問題が解決しない場合は、msbuild のログを詳細レベルの診断レベルで提供し、リンクをここに投稿してください。

于 2014-09-23T06:08:59.027 に答える