如果引用与期望的相反,则调试编译器

本文关键字:调试 编译器 引用 期望 如果 | 更新日期: 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平台上构建的,这个平台还没有定义它们。