DEBUG编译器,如果引用与预期相反

时间:2013-04-07 20:58:09

标签: c# winforms visual-studio-2010 .net-3.5

我有几个调试语句,我用编译器引用包装。

#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>

对我来说看起来很好,但我仍然有这种奇怪的行为。

1 个答案:

答案 0 :(得分:0)

正确的问题是我正在检查x86平台的设置(定义了DEBUG常量)。

然后我正在建立一个没有定义它们的AnyCPU平台。

完全是我的错...