我有一个.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 ++的任何想法?
答案 0 :(得分:0)
默认属性组声明不能满足以前存在的属性,并且定义如下:
<DefineConstants>TRACE</DefineConstants>
因此,请确保您在.csproj.vbproj的末尾导入.msbuild文件,而不是在开头。
如果这没有帮助 - 您可以在此处提供msbuild的日志,其中包含详细程度的诊断级别和帖子链接。