zoukankan      html  css  js  c++  java
  • Debug目录、Release目录,bin目录、obj目录,vshost.exe.config文件、.exe.config文件分析【C#】

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

    2013-10-06  孤风卓影  摘自 csdn博客  阅 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保存每个模块的编译结果,用来加快编译速度。是否采用增量编译,可以通过:项目属性—>配置属性—>高级—>增量编译来设置。

  • 相关阅读:
    Acwing 164 可达性统计 (拓扑排序+bitset)
    STL-bitset的基本用法
    Acwing 115 给树染色 (贪心)
    Acwing 112 雷达设备 (贪心)
    Acwing 110 畜栏预定 (贪心+stl)
    Acwing 110 防晒 (贪心算法)
    Acwing 七夕祭 (前缀和+中位数+思维)
    Acwing 103 电影 (map)
    USACO 最佳牛围栏 (二分答案+前缀和+双指针)
    Acwing 101 最高的牛 (差分数组)
  • 原文地址:https://www.cnblogs.com/w-wfy/p/7208323.html
Copyright © 2011-2022 走看看