1. 程式人生 > >Debug目錄、Release目錄,bin目錄、obj目錄,vshost.exe.config文件、.exe.config文件分析【C#】

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

修改 .com 重啟 不同 span http ocs 資料 更改

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保存每個模塊的編譯結果,用來加快編譯速度。是否采用增量編譯,可以通過:項目屬性—>配置屬性—>高級—>增量編譯來設置。

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