VS.Net中程序集的Debug版本和Release版本的区别
作者:未知 请作者速与本人联系
前几天看到豆腐的文章介绍如何知道程序集是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版本的区别相关推荐
- VC++调试程序、快捷键以及Debug版本与Release版本
1.如何在Release状态下进行调试 Project->Setting=>ProjectSetting对话框,选择Release状态.C/C++标签中的Category选General, ...
- Cmake生成debug版本和release版本
在Visual Studio中我们可以生成debug版本和release版本的程序,使用Cmake我们也可以达到同样的效果.debug版本的项目生成的可执行文件需要有调试信息并且不需要进行优化,而re ...
- 蠢哭了,debug版本可用release版本出错
记录一下本人遇到的问题,可能不适用于各位. win10 vs2015 MFC编写的一个动态库dll工程,debug版本release版本编译都通过.但是运行时debug版本可用 release版本出 ...
- Maven的Snapshot版本与Release版本
1. Snapshot版本代表不稳定.尚处于开发中的版本 2. Release版本则代表稳定的版本 3. 什么情况下该用SNAPSHOT? 协同开发时,如果A依赖构件B,由于B会更新,B应该使用SN ...
- snapshots版本和release版本间的区别
snapshots版本和release版本间的区别 在java开发过程中,我们经常会看到代码仓库中的某些项目版本以release或snapshots结尾,一般来说snapshots版本代表正在开发中的 ...
- snapshots版本和release版本区别
snapshot版本和release版本区别 在java开发过程中,我们经常会看到代码仓库中的某些项目版本以release或snapshots结尾,现在说说这两个版本之间有什么区别. 一般来说snap ...
- Maven 的 Snapshot 版本与 Release 版本
Maven 的 Snapshot 版本与 Release 版本 1.Snapshot 版本代表不稳定.尚处于开发中的版本. 2.Release 版本则代表稳定的版本. 3.什么情况下该用 SNAPSH ...
- c++中的Debug版本和Release版本的区别
今天看Visual C++ 2012 入门经典,书上描述: Debug版本包括帮助用户调试程序的信息,使用程序的Debug版本,可以在出现问题时单步执行代码,以检查程序中的数据值. Release版本 ...
- debug版本和release版本的区别
Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序.Release 称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用. ...
最新文章
- RxJavaMVPRetrofit
- 如何关闭360自定义错误页面
- tableau可视化数据分析60讲(十九)-tableau仪表板布局
- 人工智能数学基础知识
- python编程关键字_python编程关键字
- Node.js + React + MongoDB 实现 TodoList 单页应用
- c++重载、覆盖及隐藏规则
- 没有可用软件包 docker-compose。_R语言CRAN软件包Meta分析
- 已知: 每个飞机只有一个油箱, 飞机之间可以相互加油(注意是相互,没有加油机) 一箱油可供一架飞机绕地球飞半圈,问题:为使至少一架飞机绕地球一圈回到起飞时的飞机...
- 一个存储过程实现(问题答案)
- asp.net membership 配置错误
- 【chrome】谷歌chrome浏览器离线安装包的获取及使用技巧
- html好看css标题样式,比较好看的css 自定义样式(标题 h1 h2 h3)
- [SSD核心技术:FTL 2] 固态硬盘数据是怎么找到的?神秘的FTL详解
- Imperva WAF Bypass【翻译】
- 企业微信与微信相比的好处有有哪些?
- 写一副对子_续《一副对子的传奇故事》
- eclipse常用插件在线安装地址或下载地址
- 面试记录-苏宁(客服研发中心)
- macbook上好用的解压软件_苹果电脑有什么好用的解压软件?推荐 Mac OSX 下最方便实用的六款解压缩软件...
热门文章
- 使用Python,OpenCV创建动画GIF图和模因生成器
- 权威解释IDEA的“Include in project build”打钩或者不打勾有啥区别?
- 在CentOS 6.3 64bit上安装MySQL for python模块
- Blender程序性纹理学习教程大师班 Creative Shrimp – Procedural Texturing Blender Master Class
- SMI in SNMP
- g-git 相关命令 及其 基本原理探索 (一)
- leetcode-135 分发糖果
- linux平台软件动态分析工具valgrind系列工具及其可视化
- 安装apache的时候80端口被PID为4的系统进程所占用
- Asp.Net Core AsyncLocal 异步上下文