VS.Net中程序集的Debug版本和Release版本的区别

原创 2004年10月24日 23:48:00

作者:未知   请作者速与本人联系


前几天看到豆腐的文章介绍如何知道程序集是Debug版还是Release版,之前只知道某些软件从功能上有企业版、标准版之分,却从不知道.Net程序集还有Debug和Release之区别,真是惭愧学了这一年C#。然后在博客园的提问区发文求教,两天过去竟无人问津(还是自己太懒,要检讨),只好自己翻MSDN、用Google搜,现在总算有点明白了。

关于Debug和Release,MSDN里面是这么说的:

Visual Studio 项目对程序的发布和调试版本分别有单独的配置。顾名思义,生成调试版本的目的是用于调试,而生成发布版本的目的是用于版本的最终分发。
如果在 Visual Studio 中创建程序,Visual Studio 将自动创建这些配置并设置适当的默认选项和其他设置。在默认设置下: 
程序的“调试”配置用全部符号调试信息编译,不进行优化。(优化会使调试复杂化,因为源代码和生成的指令间的关系更加复杂。)
程序的“发布”配置被完全优化,不包含任何符号调试信息。调试信息可在单独的 PDB 文件中生成。

当在程序集的属性页中选Debug模式时,设置如下:

当选择Release模式时,设置如下:

两者的不同点如下:

项目 Debug Release
条件编译常数 Debug;Trace Trace
优化代码 False True
输出路径 bin/Debug bin/Release
生成调试信息 True False

Debug模式下生成的程序集为调试版本,未经优化;在bin/debug/目录中有两个文件,除了要生成的.exe或.dll文件外,还有个.pdb文件,这个.pdb文件中就记录了代码中的断点等调试信息;Release模式下不包含调试信息,并对代码进行了优化,/bin/release/目录下只有一个.exe或.dll文件。

注意若要更改项目的生成模式,不能只从项目属性页上点“配置”下拉框更改,那样不起作用,必须点右上角的“配置管理器”按钮才能更改。

现在我还有个疑问:在项目文件夹下除了bin外,还有个obj目录,里面也有debug和release两个子目录,这不知是做什么用的。

版权声明:本文为博主原创文章,未经博主允许不得转载。

浅谈DEBUG版本与RELEASE版本

DEBUG版本通常是项目处理调试阶段的一种过渡版本,它
  • nszjh
  • nszjh
  • 2014年06月27日 12:54
  • 614

C++ 程序DEBUG和RELEASE版本的区别

Relase版本对程序作了各种优化的,使得程序在大小和速度上达到最优。Debug版本,包含程序的调试信息,方便程序员做调试。Relase版本是不利于程序的调试。...
  • lyc417356935
  • lyc417356935
  • 2016年09月26日 09:30
  • 2218

VC中debug和release版本的区别

vc中debug和release的不同 收藏  在使用VC开发软件的过程中,正当要享受那种兴奋的时候突然发现:release与debug运行结果不一致,甚至出错,而release又不方便调试,真的是...
  • hegeneral
  • hegeneral
  • 2016年04月27日 20:15
  • 2465

App release版本和debug版本参数不同

参考 项目中在开发的时候有很多日志要打印,但是正式发版不应该出现这些调试日志。 以前的做法是设置一个静态变量,但是每次发版的时候要修改这个参数,经常会因为匆忙上线而忘记修改。 以前的做法 ...
  • dongzhouT
  • dongzhouT
  • 2017年06月14日 17:05
  • 367

VS环境下Debug和Release版本的区别

说一点闲话我在大学刚刚学习编程的时候,对于Debug和Release这两个词只是处于知道的水平,并没有深入了解。因为大学时期的编程更多的是为了实现,而不是使用。所以部署这个词,在大学时和我没有任何瓜葛...
  • Lionel_Coder
  • Lionel_Coder
  • 2016年07月14日 21:49
  • 3712

在一个makefile中输出一个程序的debug版本和release版本

在一个makefile中输出一个程序的debug版本和release版本 场景: 开发人员(rd)和测试人员(qa)是不同的人,可执行程序是通过配置管理平台提供的。同时,所有程序要上线运行,要通过...
  • wishfly
  • wishfly
  • 2015年04月30日 07:28
  • 2624

cocos2dx: win32工程Release 和 Debug版本使用的标准库

1、 Debug版本: /MDd 定义 _DEBUG、_MT 和 _DLL,并使此应用程序使用特定于多线程和 DLL 的调试版本的运行库。  它还会让编译器将库名称 MSVCRTD.lib 放...
  • tianxiawuzhei
  • tianxiawuzhei
  • 2015年06月11日 15:01
  • 1985

iOS开发-Xcode debug,release的区别

Xcode进行调试时候,经常看到debug和release,那么他们是什么呢? debug是调试版本, release是发行版本, Xcode里面,但凡有debug和release 设置的地方,就...
  • qq_26968709
  • qq_26968709
  • 2016年04月18日 18:21
  • 832

vs:Release版本和Debug版本的区别以及转换

vs:Release版本和Debug版本的区别以及转换标签:vs 简介 vs中的工程有debug和release两个版本:Debug通常称为调试版本,通过一系列编译选项的配合,编译的结果通常包含调试...
  • hust_sheng
  • hust_sheng
  • 2015年11月21日 14:21
  • 4452

iOS中-Xcode Debug、Release、Archive、Profile、Analyze的概念和区别

转自http://blog.csdn.net/mad1989/article/details/40658033 1,Debug和Release版本区别? 众所周知,我们进行iOS开发,在Xco...
  • u011303663
  • u011303663
  • 2015年06月15日 14:42
  • 1257
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:VS.Net中程序集的Debug版本和Release版本的区别
举报原因:
原因补充:

(最多只允许输入30个字)