原文地址:http://blog.csdn.net/itwit/article/details/6803338

今天写程序的时候,需要更改.exe.config文件中的引用的webservice地址,用vs调试的时候,发现会修改vshost.exe.config中的对应项,.exe.config中的对应项是不会修改的,这样会导致在软件重启的情况下,.exe.config中的旧信息会覆盖vshost.exe.config的新信息,经过查阅相关资料,终于明白了一些,记录下来,供参考~

1、vshost.exe.config与.exe.config

vshost.exe.config文件与.exe.config文件中的内容是一模一样的,不同的是.exe.config是EXE软件的配置文件,而vshost.exe.config是VS的一项功能,是为了提高调试性能,而

生成的支持文件,msdn上指出是宿主进程。这样就说明,在最后打包的时候,只需要包括.exe.config文件而不需要包括vshost.exe.config文件。

2、Debug目录与Release目录

Debug是调试目录,生成调试版本的目的是在开发调试的过程中,能最高性能的工作,主要体现在:程序的“调试”配置用全部符号调试信息编译,不进行优化。(优化会使调试复杂化,因为源代码和生成的指令间的关系更加复杂)调试信息保存在Debug目录下的.pdb 文件中,该文件中会记录断点等信息。

Release目录是发布目录,生成发布版本的目的是用来形成最终软件的组成部分,能得到优化,主要体现在:程序的“发布”配置被完全优化,不包含任何符号调试信息。会生成XmlSerializers.dll文件(序列或程序集)、.vshost.exe.manifest(XML的程序集,打安装包的时候不需要,在配置管理器中可以关掉)

另外:Release目录下有的也会有vshost.exe.config等调试文件,这跟配置管理器的设置有关,可以关掉:项目Properties->build->Generate serialization assembly 设置成Off

3、bin目录与obj目录

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

Debug目录、Release目录,bin目录、obj目录,vshost.exe.config文件、.exe.config文件分析【C#】的更多相关文章

  1. SVN(TortoiseSVN)提交时忽略bin跟obj目录

    SVN(TortoiseSVN)提交时忽略bin和obj目录 一般协作开发情况下,有意思无意将bin和obj目录添加到版本管理中是很烦人的事儿,在VS中不断地编译程序集和提交将带来版本暴增问题.如果你 ...

  2. 让 SVN (TortoiseSVN)提交时忽略bin和obj目录

    2013-06-23 更新 后来我使用属性来过滤,结果反而没有效果了,之后我再次尝试使用全局忽略样式设置:*/bin */obj */packages 结果又有效果了,奇怪了. ------- 由于我 ...

  3. SVN——将VS项目提交至SVN时,怎样忽略bin和obj目录中的文件

    方法一: 通过设置SVN的Global ignore pattern值. 在设置了全局排除obj bin文件夹之后,需commit提交该项目,以使svn服务器应用该排除忽略 方法二: 具体实现 在解决 ...

  4. 将VS项目提交至SVN时,怎样忽略bin和obj目录中的文件

    方法一: 通过设置SVN的Global ignore pattern值. 使用下面的设定值: *.o *.lo *.la *.al .libs *.so *.so.[0-9]**.a *.pyc *. ...

  5. Visual Studio Debug和Release的区别及obj的作用

    一.Debug和Release的区别      1.Debug:调试版本,包含调试信息,所以容量比Release大很多,并且不进行任何优化(优化会使调试复杂化,因为源代码和生成的指令间关系会更复杂), ...

  6. Visual Studio 项目目录下的bin目录和 obj目录

    一.Bin目录 Visual Studio 编译时,在bin 目录下有debug 和 release 目录. 1.Debug: 通常称为调试版本,它包含调试信息,所以要比Release 版本大很多(可 ...

  7. vs2010 创建预编译头 Debug 正常 Release Link Error问题解决

    问题:创建预编译头 Debug 正常 Release Link Error Main.obj : error LNK2005: ___@@_PchSym_@00@UmfilkilqUdrmzkkUki ...

  8. 创建预编译头 Debug 正常 Release Link Error:预编译头已存在,使用第一个 PCH

    创建预编译头 Debug 正常 Release Link Error Main.obj : error LNK2005: ___@@_PchSym_@00@UmfilkilqUdrmzkkUkilqU ...

  9. C#项目中的bin目录和obj目录的区别

    C#项目中的bin目录和obj目录的区别 1.关于bin目录和obj目录 Bin目录用来保存项目生成后程序集,它有Debug和Release两个版本,分别对应的文件夹为bin/Debug和bin/Re ...

随机推荐

  1. (转)Sencha Touch和jQuery Mobile的比较

    原文:http://extjs.org.cn/node/664 Sencha Touch和jQuery Mobile的比较 Posted 周三, 08/07/2013 - 10:07 by admin ...

  2. (转)关于java和web项目中的相对路径问题

    原文:http://blog.csdn.net/yethyeth/article/details/1623283 关于java和web项目中的相对路径问题 分类: java 2007-05-23 22 ...

  3. Linux下控制器IO地址

    在Linux下使用cat /proc/ioports可以查看控制器使用的IO地址范围

  4. C#泛型(三)

    主要的内容: <1>.原理性的东西----" 泛型的协变和逆变 " <2>.以及常用的接口----" IEnumerable 及其泛型版的IEnu ...

  5. Nginx+uWSGI+Django+Python+ MySQL 搭建可靠的Python Web服务器

    一.安装所需工具 yum -y install gcc gcc-c++ rpm-build mysql* libtool-ltdl* libtool automake autoconf libtool ...

  6. iOS 微信 音频 视频自动播放

    iOS 微信 音频 视频自动播放 http://www.w3ctech.com/topic/1165

  7. Magento路径函数getBaseUrl使用方法

    当我们在设计开发Magento主题模板时候,有个函数一定要知道,那就是getBaseUrl函数,用getBaseUrl函数我们可以在.phtml里调用JS.image.File.   1,getBas ...

  8. LeetCode Pow(x, n) (水题)

    题意: 求浮点型x的n次幂结果. 思路: logN直接求,注意n可能为负数!!!当n=-2147483648的时候,千万别直接n=-n,这样的结果是多少?其他求法大同小异. class Solutio ...

  9. 特性节点Attribute

    深入理解DOM节点类型第六篇——特性节点Attribute document.getElementById('b_results').attributes[0].textContent documen ...

  10. 常用的Hash算法

    1.RSHash unsigned int RSHash(const std::string& str) {    unsigned int b    = 378551;    unsigne ...