我们都知道,在发布模式下编译时,Debug.Assert
不会被编译到dlls中。但是出于某种原因,Debug.Assert
确实出现在我编写的一个组件的发布版本中。我怀疑我可能搞乱了我的csproject设置。
你知道为什么Debug.Assert
会出现在发布模式下吗?
P/S:在问这个问题之前,我已经仔细检查过了,以确保我真的是在发布模式下编译。
注意2:我仔细检查了我的csproject,我发现在发布配置中,定义调试常量没有被勾选,这表明我对这个部分的设置是正确的。
发布于 2010-06-11 17:28:07
我找到了答案;这是因为在项目中cs文件的开头定义了一个#define DEBUG
预处理器。移除它就解决了问题
发布于 2010-06-11 17:11:34
检查项目文件中的DefineConstants
属性,它应该是:
适用于
<DefineConstants>DEBUG;TRACE</DefineConstants>
configuration<DefineConstants>TRACE</DefineConstants>
configurationRelease的调试
检查代码中是否没有任何#define DEBUG
。
发布于 2010-06-11 17:31:41
请记住,“发布模式”只是一个名称为"Release“的构建配置。这并不意味着所使用的编译设置有任何含义:完全有可能创建一个名为"Release“的配置,该配置实际编译具有调试设置的所有内容。或者,实际上,根本不编译任何东西!
其他答案建议了几个可以查看的地方-但基本上听起来您的项目或解决方案设置已经重新配置了“发布”构建,以包括调试信息。
关于尚未提到的可能性:在VS中,如果您下拉构建配置组合框(通常选择"Debug“或"Release")并选择"Configuration Manager”,您可以看到每个解决方案构建配置对每个项目的意义。您将注意到,例如,您可以在解决方案上配置一个"Release“构建,以便仍然在Debug模式下构建一些组件。
https://stackoverflow.com/questions/3021538
复制相似问题