您的位置:首页 > 其它

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

2017-12-20 16:27 120 查看
VS.Net中程序集的Debug版本和Release版本的区别

转载地址:http://blog.sina.com.cn/s/blog_7d283bbb0101bi4i.html

1.关于bin 目录和obj 目录
Bin 目录用来保存项目生成后程序集,它有Debug 和Release 两个版本,分别对应的文件夹为bin/Debug 和bin/Release ,这个文件夹是默认的输出路径,我们可以通过:项目属性—> 配置属性—> 输出路径来修改。
obj 目录是用来保存 每个模块的编译结果,在.NET 中,编译是分模块进行的,编译整个完成后会合并为一个.DLL 或.EXE 保存到bin 目录下。因为每次编译时默认都是采用增量编译,即只重新编译改变了的模块,obj 保存每个模块的编译结果,用来加快编译速度。是否采用增量编译,可以通过:项目属性—> 配置属性—>
高级—> 增量编译来设置。

2.“是否复制到本地”的设置问题
在添加引用时,.NET 会记录添加的引用绝对路径,这些设置保存在“每用户”文件中,(Solution.csproj.user ),可以通过记事本打开查看。也可以在:项目属性—> 通用属性—> 引用路径里面查看。如果设置复制到本地为true ,在生成项目时会自动拷贝该DLL 到项目生成文件夹中(bin 目录)
,否则不会拷贝。在生成项目时,对所添加的引用的是绝对路径,而在运行时程序集默认只在当前所在的路径下去找。要修改引用的路径,必须通过编程的方法去实现。使用 References 对象。

3.Debug和Release的区别

Debug:调试版本,包含调试信息,所以容量比Release大很多,并且不进行任何优化(优化会使调试复杂化,因为源代码和生成的指令间关系会更复杂),便于程序员调试。Debug模式下生成两个文件,除了.exe或.dll文件外,还有一个.pdb文件,该文件记录了代码中断点等调试信息

Release:发布版本,不对源代码进行调试,编译时对应用程序的速度进行优化,使得程序在代码大小和运行速度上都是最优的。(调试信息可在单独的PDB文件中生成)。Release模式下生成两个文件.exe或.dll文件

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

Visual Studio 项目对程序的发布和调试版本分别有单独的配置。顾名思义,生成调试版本的目的是用于调试,而生成发布版本的目的是用于版本的最终分发。 

如果在 Visual Studio 中创建程序,Visual Studio 将自动创建这些配置并设置适当的默认选项和其他设置。在默认设置下:

程序的“调试”配置用全部符号调试信息编译,不进行优化。(优化会使调试复杂化,因为源代码和生成的指令间的关系更加复杂。) 

程序的“发布”配置被完全优化,不包含任何符号调试信息。调试信息可在单独的 PDB 文件中生成。

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



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



两者的不同点如下: 

项目DebugRelease
条件编译常数Debug;TraceTrace
优化代码FalseTrue
输出路径bin\Debugbin\Release
生成调试信息TrueFalse
Debug模式下生成的程序集为调试版本,未经优化;在bin\debug\目录中有两个文件,除了要生成的.exe或.dll文件外,还有个.pdb文件,这个.pdb文件中就记录了代码中的断点等调试信息;Release模式下不包含调试信息,并对代码进行了优化,\bin\release\目录下只有一个.exe或.dll文件。

注意若要更改项目的生成模式,不能只从项目属性页上点“配置”下拉框更改,那样不起作用,必须点右上角的“配置管理器”按钮才能更改。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: