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

前几天看到豆腐的文章介绍如何知道程序集是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两个子目录,这不知是做什么用的。

VS.Net中程序集的Debug版本和Release版本的区别相关推荐

  1. VC++调试程序、快捷键以及Debug版本与Release版本

    1.如何在Release状态下进行调试 Project->Setting=>ProjectSetting对话框,选择Release状态.C/C++标签中的Category选General, ...

  2. Cmake生成debug版本和release版本

    在Visual Studio中我们可以生成debug版本和release版本的程序,使用Cmake我们也可以达到同样的效果.debug版本的项目生成的可执行文件需要有调试信息并且不需要进行优化,而re ...

  3. 蠢哭了,debug版本可用release版本出错

    记录一下本人遇到的问题,可能不适用于各位. win10 vs2015  MFC编写的一个动态库dll工程,debug版本release版本编译都通过.但是运行时debug版本可用 release版本出 ...

  4. Maven的Snapshot版本与Release版本

    1. Snapshot版本代表不稳定.尚处于开发中的版本 2. Release版本则代表稳定的版本 3. 什么情况下该用SNAPSHOT?  协同开发时,如果A依赖构件B,由于B会更新,B应该使用SN ...

  5. snapshots版本和release版本间的区别

    snapshots版本和release版本间的区别 在java开发过程中,我们经常会看到代码仓库中的某些项目版本以release或snapshots结尾,一般来说snapshots版本代表正在开发中的 ...

  6. snapshots版本和release版本区别

    snapshot版本和release版本区别 在java开发过程中,我们经常会看到代码仓库中的某些项目版本以release或snapshots结尾,现在说说这两个版本之间有什么区别. 一般来说snap ...

  7. Maven 的 Snapshot 版本与 Release 版本

    Maven 的 Snapshot 版本与 Release 版本 1.Snapshot 版本代表不稳定.尚处于开发中的版本. 2.Release 版本则代表稳定的版本. 3.什么情况下该用 SNAPSH ...

  8. c++中的Debug版本和Release版本的区别

    今天看Visual C++ 2012 入门经典,书上描述: Debug版本包括帮助用户调试程序的信息,使用程序的Debug版本,可以在出现问题时单步执行代码,以检查程序中的数据值. Release版本 ...

  9. debug版本和release版本的区别

    Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序.Release 称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用. ...

最新文章

  1. RxJavaMVPRetrofit
  2. 如何关闭360自定义错误页面
  3. tableau可视化数据分析60讲(十九)-tableau仪表板布局
  4. 人工智能数学基础知识
  5. python编程关键字_python编程关键字
  6. Node.js + React + MongoDB 实现 TodoList 单页应用
  7. c++重载、覆盖及隐藏规则
  8. 没有可用软件包 docker-compose。_R语言CRAN软件包Meta分析
  9. 已知: 每个飞机只有一个油箱, 飞机之间可以相互加油(注意是相互,没有加油机) 一箱油可供一架飞机绕地球飞半圈,问题:为使至少一架飞机绕地球一圈回到起飞时的飞机...
  10. 一个存储过程实现(问题答案)
  11. asp.net membership 配置错误
  12. 【chrome】谷歌chrome浏览器离线安装包的获取及使用技巧
  13. html好看css标题样式,比较好看的css 自定义样式(标题 h1 h2 h3)
  14. [SSD核心技术:FTL 2] 固态硬盘数据是怎么找到的?神秘的FTL详解
  15. Imperva WAF Bypass【翻译】
  16. 企业微信与微信相比的好处有有哪些?
  17. 写一副对子_续《一副对子的传奇故事》
  18. eclipse常用插件在线安装地址或下载地址
  19. 面试记录-苏宁(客服研发中心)
  20. macbook上好用的解压软件_苹果电脑有什么好用的解压软件?推荐 Mac OSX 下最方便实用的六款解压缩软件...

热门文章

  1. 使用Python,OpenCV创建动画GIF图和模因生成器
  2. 权威解释IDEA的“Include in project build”打钩或者不打勾有啥区别?
  3. 在CentOS 6.3 64bit上安装MySQL for python模块
  4. Blender程序性纹理学习教程大师班 Creative Shrimp – Procedural Texturing Blender Master Class
  5. SMI in SNMP
  6. g-git 相关命令 及其 基本原理探索 (一)
  7. leetcode-135 分发糖果
  8. linux平台软件动态分析工具valgrind系列工具及其可视化
  9. 安装apache的时候80端口被PID为4的系统进程所占用
  10. Asp.Net Core AsyncLocal 异步上下文