#if DEBUG在DEBUG和RELEASE模式下始终为真

10

由于某些原因,任何类似以下代码的内容:

#if DEBUG
    CallSomeMethod();
#endif

无论是调试模式还是发布模式,它始终为真。有什么想法吗?我该使用哪个设置来开启或关闭此功能?对于该项目,定义了DEBUG常量并设置为true。
谢谢。
6个回答

19

您应该能够在项目属性中选择发布模式。右键单击项目,选择“属性”,然后单击窗口左侧的“构建”选项卡。从那里,您可以取消选中“定义DEBUG常量”框。确保您为发布版本执行此操作,而不是调试模式。

enter image description here


1
谢谢,就是这样了。我指的是调试模式,但它也在发布模式下,这绝对是问题的原因 :-) - Brian Mains

5

看起来你已经回答了自己的问题:

为了这个项目,需要将DEBUG常量定义为true。

这应该只在构建文件中有条件地设置,而不是总是设置。


是的,你说得对,唉,今天就是这种日子。我指的是调试模式,但是在发布模式下也有。我没意识到。 - Brian Mains

1

以上方法都没有对我起作用。在我的情况下,有人将所有项目的配置设置为调试模式。我恢复了更改,并且它能正常工作了。因此,如果上述解决方案对您无效,请检查您的“配置管理器”并验证配置是否正确。 在此输入图片描述


0

这是因为在发布模式下,DEBUG常量也是真的。

构建模式并没有什么特别之处 - 它只是一个带有名称的构建设置集合。如果您想要,您可以创建一个具有所有正常“调试”模式设置(反之亦然)的“发布”模式。


0

我在发布配置中保持了“定义DEBUG常量”的未选状态,但是当我运行了已发布的应用程序时,它仍在Debug模式下运行。

因为在发布应用程序时,配置选项中选择了'Debug'。这是一个愚蠢的错误。

请确保在发布时选择'Release'选项: 在配置中选择'Release'选项


-1

#if DEBUG时,代码将在发布模式下省略为灰度,您可以使用Visual Studio IDE亲自查看。如果不是这种情况,则可以像@Kragen建议的那样,在类中定义DEBUG,以便它也影响发布。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接