C#中的预处理器无法正常工作

Him*_*aja 8 c# c-preprocessor

#if(DEBUG)
    ......Code......
#else
    ......Code......
#endif
Run Code Online (Sandbox Code Playgroud)

我有一些像这样的代码.如果我的应用程序在调试模式下运行它应该执行#if(DEBUG)part,如果它在Release模式下运行它应该执行#elsepart.但无论它运行的模式是什么,它只执行#if(DEBUG)部分.

我在VS2010上使用WPF应用程序

谁能帮我?

Bin*_*ier 17

对于调试配置,您的项目设置应如下所示

在此输入图像描述

对于Release,它们看起来应该是这样的

在此输入图像描述

你能否证实是这种情况,如果有,请告诉我们?
如果没有,每种配置有什么用?


Øyv*_*hen 0

我猜想在您的项目属性中,在“构建”下您已经选中了Define DEBUG constant.

尝试将配置模式设置为Release并再次运行您的应用程序。默认情况Release下,DEBUG如果您没有篡改 if,则该常量未定义;)

如果Define DEBUG constant没有检查,则意味着您潜伏#define DEBUG在某处。

所以要做两件事。检查Release模式下选项中的常量,并检查是否有任何手动定义的常量。它应该是其中之一。