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 回答