博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Debug目录、Release目录,bin目录、obj目录,vshost.exe.config文件、.exe.config文件分析【C#】...
阅读量:5024 次
发布时间:2019-06-12

本文共 1292 字,大约阅读时间需要 4 分钟。

Debug目录、Release目录,bin目录、obj目录,vshost.exe.config文件、.exe.config文件分析【C#】

2013-10-06 
   摘自   阅 558  转 4
 
分享:
 

今天写程序的时候,需要更改.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保存每个模块的编译结果,用来加快编译速度。是否采用增量编译,可以通过:项目属性—>配置属性—>高级—>增量编译来设置。

转载于:https://www.cnblogs.com/w-wfy/p/7208323.html

你可能感兴趣的文章
bug记录_signalr执行$.connnection.testhub结果为空
查看>>
【转】常用的latex宏包
查看>>
[TMS320C674x] 一、GPIO认识
查看>>
酷狗的皮肤文件存放在哪
查看>>
iOS RunLoop简介
查看>>
C++的引用
查看>>
T-SQL查询进阶--深入浅出视图
查看>>
MapKeyboard 键盘按键映射 机械革命S1 Pro-02
查看>>
Android读取url图片保存及文件读取
查看>>
完整ASP.Net Excel导入
查看>>
判断CPU大小端示例代码
查看>>
ARTS打卡第13周
查看>>
循环队列的运用---求K阶斐波那契序列
查看>>
pta 编程题14 Huffman Codes
查看>>
初始化bootstrap treeview树节点
查看>>
python selenium向<sapn>标签中写入内容
查看>>
JS常用坐标
查看>>
使用”结构化的思考方式“来编码和使用”流程化的思考方式“来编码,孰优孰劣?...
查看>>
C#调用斑马打印机打印条码标签(支持COM、LPT、USB、TCP连接方式和ZPL、EPL、CPCL指令)【转】...
查看>>
关于git的认证方式
查看>>