天天看點

WPF讀寫.exe.config 或 app.config檔案

在WPF工程裡面會有兩個config,一個是.exe.config,另一個是app.config。

如果需要用到config去儲存設定,需要在app.config裡面添加settings,如下修改:

<?xml version="1.0"?>

<configuration>

  <startup>

    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>

  </startup>

  <appSettings file="">

    <clear />

    <add key="Debug" value="" />

  </appSettings>

</configuration>

讀取的時候,在代碼中使用如下方法:

      string debug = System.Configuration.ConfigurationSettings.AppSettings["Debug"];

在編譯生成exe時,app.config檔案的内容會自動同步到.exe.Config。因為app.config不會随安裝包運作,隻是生成時有用。 一旦生成後,就與exe無關。

在編譯後,修改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儲存每個子產品的編譯結果,用來加快編譯速度。是否采用增量編譯,可以通過:項目屬性—>配置屬性—>進階—>增量編譯來設定。