C# Debug 与 Release 的区别

还不够格啊 2004-07-05 12:18:00
C# 编译成的 Windows Form 程序,Debug 版本 和 Relase 版本的大小是一样的,只是 Debug 版本要附带一些其他文件(.pdb文件)。到底有什么不同?对于运行来说,有执行效率上的差别吗?
...全文
6072 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
qqboy168 2010-06-22
  • 打赏
  • 举报
回复
前一段,用C#写了一个程序,在启动时,用了单例模式,只允许启动一个实例,这个操作,在dubug中没问题,在release版中,居然不管用了,可以启动多份,后来查资料,说是这两种模式在内存变量初始化时机等很多地方,还是有区别的。
还不够格啊 2004-07-06
  • 打赏
  • 举报
回复
用 Debug 模式生成的程序本身并不包含调试信息,调试信息包含在单独的 .pdb 文件中。用 Release 模式生成的程序与用 Debug 模式生成的程序是一样的,但它没有调试信息,不能调试,因为没有 .pdb 文件。

在 Release 模式下,即使进行了优化,生成的程序与在 Debug 模式下没有优化的情况下生成的程序还是一样的。

如果不考虑调试与发布,直接运行 Debug 和 Release 生成的程序 (在 VS.NET IDE 之外),到底有什么不同?效率,速度,资源占用,等等?

flyincs 2004-07-06
  • 打赏
  • 举报
回复
Release是发布版
Debug是调试版本
vzxq 2004-07-06
  • 打赏
  • 举报
回复
说是Release 快,感觉不到
siugwan 2004-07-06
  • 打赏
  • 举报
回复
比较过生成文件的大小是一样的,不过看过相关的文章说Debug生成的程序运行时所产生的系统线程比Release多。
qq7good 2004-07-06
  • 打赏
  • 举报
回复
解决方案及其单个项目通常在“Debug”版本中生成并测试。开发人员将反复编译“Debug”版本(在开发过程的每一步都将进行此操作)。调试过程分为两步。首先,纠正编译时错误。这些错误可以包含不正确的语法、拼错的关键字和键入不匹配。接下来,使用调试器检测并纠正在运行时检测到的逻辑错误和语义错误等问题。

在项目或解决方案完全开发并充分调试后,在“Release”版本中编译其组件。默认情况下,“Release”版本使用各种优化。经过优化的版本被设计为比未经优化的版本小且运行速度更快。有关优化的更多信息,请参见“<项目名> 属性页”对话框 ->“配置属性”->“优化”。

去查一下msdn不就行了
亲密数 2004-07-05
  • 打赏
  • 举报
回复
同意 spraydew
weixing979 2004-07-05
  • 打赏
  • 举报
回复
同意 spraydew
zhanglizhao 2004-07-05
  • 打赏
  • 举报
回复
同意楼上的说法(spraydew)!!!
云孤天 2004-07-05
  • 打赏
  • 举报
回复
release是发布用的,不能打断点执行
Debug 是调试用的,可以打断点执行
duwx 2004-07-05
  • 打赏
  • 举报
回复
还有release编辑出来的文件小,但是不能调试。
zljblue 2004-07-05
  • 打赏
  • 举报
回复
DEGUG用来调试的
酋长 2004-07-05
  • 打赏
  • 举报
回复
release 执行速度快的
m777 2004-07-05
  • 打赏
  • 举报
回复
效率应该没有差别,具体的差别不清除,帮你顶一下!
还不够格啊 2004-07-05
  • 打赏
  • 举报
回复
各位先编个 C# WindowsForm 程序,验证是否 Debug 和 Release 生成的 .exe 或 .dll 是一样的,包括大小。 Debug 和 Release 用缺省设置.

各位的回答很多都基于 .NET 以前的编程经验吧.
北京的雾霾天 2004-07-05
  • 打赏
  • 举报
回复
我认为如果是处在调试阶段程序运行时会自动的运行Debug目录下的,当发布给用户的时候就用Release的,因为这个会更小更快.这才是.NET最后要使用的程序.
banping 2004-07-05
  • 打赏
  • 举报
回复
xinshaw 2004-07-05
  • 打赏
  • 举报
回复
原先以为仅仅是放的地方不同,呵呵
原来执行效率和大小都不同呀
还不够格啊 2004-07-05
  • 打赏
  • 举报
回复
但好像调试信息并不包含在生成的 .exe 或 .dll 中,因为 Debug 和 Release 都生成同样大小的文件,他们好像是相同的。

换个说法,也可以拿 Debug 下生成的文件发布啊,因为 Debug 和 Release 生成的文件就是相同的。

但是在 VB.NET 和 VC.NET 中 Debug 和 Release 生成的文件大小是不同的。
VC.NET 的 Debug 文件大,
VB.NET 的 Debug 文件反而小,起码我的两个例子是这样的。


还是因为对 Debug 和 Release 的设置造成的?

心雨楼 2004-07-05
  • 打赏
  • 举报
回复
调试和发布是不一样的啊
加载更多回复(2)

110,530

社区成员

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

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

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