Debug.Assert出现在发布模式中

Gra*_*ton 17 c# visual-studio-2008

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

知道为什么Debug.Assert出现在发布模式?

P/S:在问这个问题之前,我已经仔细检查以确保我真的在发布模式下进行编译.

注2:我已经仔细检查了我的csproject,我发现在Release配置中,未勾选Define DEBUG常量,表明对于这部分我的设置是正确的.

Jul*_*rau 28

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

  • <DefineConstants>DEBUG;TRACE</DefineConstants>用于调试配置
  • <DefineConstants>TRACE</DefineConstants>用于发布配置

检查#define DEBUG您的代码中是否有任何内容.


Gra*_*ton 14

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

  • 那会毁了你的一天;) (6认同)

Dan*_*zey 11

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

其他答案提出了一些需要考虑的地方 - 但基本上听起来您的项目或解决方案设置已重新配置"发布"版本以包含调试信息.

尚未提及的可能性:在VS中,如果您下拉构建配置组合框(通常选择"Debug"或"Release")并选择"Configuration Manager",您可以看到每个解决方案构建配置对每个项目.您会注意到,例如,您可以在解决方案上配置"发布"版本,以便在调试模式下构建一些组件(如果您愿意).