如果引用与期望的相反,则调试编译器
本文关键字:调试 编译器 引用 期望 如果 | 更新日期: 2023-09-27 18:07:51
我用编译器引用包装了几个调试语句。
#if DEBUG
Debug.WriteLine("Debug statement");
#endif
但是在Debug配置中,Debug似乎等于false,而在Release中Debug似乎等于true。
这只发生在什么看起来像一个单一的项目,我成功地从其他项目获得调试语句。
以下是我认为。csproj文件中相关的部分
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<PlatformTarget>x86</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin'Debug'</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
<PlatformTarget>x86</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin'Release'</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
这对我来说看起来很好,但我仍然有这种奇怪的行为。
问题是我检查了x86平台的设置(其中定义了DEBUG常量)。
我当时是在AnyCPU平台上构建的,这个平台还没有定义它们。