gpt4 book ai didi

c# - #如果 DEBUG 被忽略(VB.net 或 C#)

转载 作者:可可西里 更新时间:2023-11-01 07:59:32 25 4
gpt4 key购买 nike

我的代码中有几个到目前为止运行良好:

#If DEBUG Then    
... some code here
#End If

现在,我注意到最近“#If DEBUG Then ... #End If”中的代码也在“ Release模式”下执行。

这很奇怪,以前没有发生过。可能发生了什么#If DEBUG 现在被忽略(它们在 IDE 中的调试或最终可执行文件中都被忽略)?

我已经应用了 Clean、Rebuild 等:没有运气。感谢您提供任何提示和帮助。

-帕姆

最佳答案

首先,确保您了解运行代码的方式与构建代码的方式之间的区别。太多人将“在调试器中启动”与“调试版本”等同起来,将“不在调试器中启动”与“发布版本”等同起来。它们是完全正交的——您可以在调试器中启动发布版本(通常可用信息较少),也可以不在调试器中启动调试版本。如果您已经意识到这一点,我们深表歉意。

现在,假设您确实已经将正在构建的项目配置更改为 Release,您需要检查该特定配置的项目属性。我不知道它在 VB 中是什么样子,但在 C# 中的项目属性中,在构建选项卡中,将有一个已定义符号的列表 - that 是影响 #是否构建了 DEBUG 代码。也许有人将项目配置从 Debug 复制到 Release 中?

编辑:在构建时检查它的一种方法是:

#if DEBUG
#error This shouldn't happen
#endif

在发布构建中,应该构建没有错误。在调试中,它不会。

编辑:另一种选择是您的整体解决方案 配置现在指的是错误的项目 配置类型。我不记得确切的菜单名称,但如果您查看配置管理器的项目,您应该能够调出一个网格映射“项目”和“解决方案配置”到要构建的项目配置。

关于c# - #如果 DEBUG 被忽略(VB.net 或 C#),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6912273/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com