VS的Debug环境和Release环境有什么区别,该怎么使用呢

自由作戏 2014-11-25 03:16:00
大神们,问个问题
#if DEBUG
Console.WriteLine("DEBUG");
#endif
#if RELEASE
Console.WriteLine("RESEASE");
#endif
Console.ReadKey();
这段代码为什么在RELEASE中没有输出,在Debug中就有输出
...全文
1486 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
吹风的兔子 2014-11-25
  • 打赏
  • 举报
回复
项目 > 右键 > 属性 > 生成 > 条件编译符号 输入 “我是大神” 代码: #if 我是大神 Console.WriteLine("我是大神"); #endif 就会执行。
吹风的兔子 2014-11-25
  • 打赏
  • 举报
回复
好像有一个 东西 叫做 “预编译指令” 吧。 #if DEBUG Console.WriteLine("DEBUG"); #endif #if RELEASE Console.WriteLine("RESEASE"); #endif 这里的 DEBUG 和 RELEASE 并不是 VS 告诉你的 那个 (调试版 和 发布版) —— 而是在这里 有 自定义设置: 项目 > 右键 > 属性 > 生成 > 条件编译符号 下面 默认 勾选了 DEBUG 和 TRACE —— 如果 你 不勾选 “定义DEBUG常量” , 你的程序 连 Console.WriteLine("DEBUG"); 也不会执行。
KeepSayingNo 2014-11-25
  • 打赏
  • 举报
回复
这个就是微软给出的一个调试方案
异常异长 2014-11-25
  • 打赏
  • 举报
回复
引用 5 楼 u011610746 的回复:
[quote=引用 4 楼 stubble 的回复:] VS2008? 不识别RELEASE 试试这个吧
#if !DEBUG
            this.backgroundWorker1.RunWorkerAsync();
#endif
用的VS2012 用你的方法可以解决,但是能告诉为什么吗[/quote] 那肯定是vs自身不支持。事实如此,也没有什么为什么。。 个人理解就是 嵌套在 #DEBUG 代码块的 是debug下需要看到的信息 只是为了方便程序员,只能在debug模式下作为调试信息。这段代码发布后,客户看不到。 RELEASE 下嵌套代码 就完全没有必要了、、 既然发布了 就是给客户用的 。
自由作戏 2014-11-25
  • 打赏
  • 举报
回复
引用 4 楼 stubble 的回复:
VS2008? 不识别RELEASE 试试这个吧
#if !DEBUG
            this.backgroundWorker1.RunWorkerAsync();
#endif
用的VS2012 用你的方法可以解决,但是能告诉为什么吗
异常异长 2014-11-25
  • 打赏
  • 举报
回复
VS2008? 不识别RELEASE 试试这个吧
#if !DEBUG
            this.backgroundWorker1.RunWorkerAsync();
#endif
自由作戏 2014-11-25
  • 打赏
  • 举报
回复
引用 1 楼 happy09li 的回复:
http://blog.csdn.net/sky___ice/article/details/8993885
这个链接只描述了Debug和Release的区别,没有告诉为什么不能执行

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧