Debug.Assert在发布模式下出现

我们都知道Debug.Assert在发布模式下编译时不会编译到dll中。 但由于某种原因, Debug.Assert确实出现在我编写的组件的发行版中。 我怀疑我可能搞砸了我的csproject设置。

任何想法为什么Debug.Assert在发布模式下出现?

P / S:在提出这个问题之前,我进行了双重检查,以确保我真的在发布模式下编译。

注2:我已经重新检查了我的csproject,并且我发现在Release配置中, Define DEBUG常量没有打勾,表明对于这部分我的设置是正确的。


检查项目文件中的DefineConstants属性,它应该是:

  • 用于调试配置的<DefineConstants>DEBUG;TRACE</DefineConstants>
  • 用于发布配置的<DefineConstants>TRACE</DefineConstants>
  • 检查你的代码中没有#define DEBUG


    我找到答案; 这是因为在项目内部的cs文件的开头定义了一个#define DEBUG预处理器。 删除它可以解决问题


    请记住,“发布模式”只是名称为“发布”的构建配置。 这并不一定意味着任何关于正在使用的编译设置:完全可以创建一个名为“Release”的配置,它实际上用调试设置编译所有内容。 或者,实际上,根本不编译任何东西!

    其他答案显示了一些需要查看的地方 - 但基本上,这听起来像是您的项目或解决方案设置已重新配置“发布”版本以包含调试信息。

    可能性尚未提及:在VS中,如果您下拉构建配置组合框(通常选择“调试”或“发布”)并选择“配置管理器”,您可以看到每个解决方案构建配置对于每个项目。 您会注意到,例如,您可以在解决方案上配置“发布”版本,以便在调试模式下仍然可以构建一些组件,只要您愿意。

    链接地址: http://www.djcxy.com/p/4799.html

    上一篇: Debug.Assert Appears in Release Mode

    下一篇: Clearing localStorage in javascript?