修改App.Config配置文件可能遇到的問題

  網上有很多修改App.Config配置文件的代碼,有一種方式是用Configuration.Save保存修改,ConfigurationManager.RefreshSection更新緩存,有網友提問說調試時發現App.Config沒有修改。

  App.Config是通過新建項-應用程序配置文件添加的,編譯後通常是不會輸出到bin目錄下,編譯後Release狀態生成的是項目名.exe.config,debug狀態生成的是項目名.vshost.exe.config。查找App.Config配置是否修改成功,不是在項目中找App.config文件是否修改,而是在項目名.exe.config,項目名.vshost.exe.config中找相關項是否修改成功。

  在debug狀態下程序修改的是項目名.vshost.exe.config,一旦退出debug狀態項目名.vshost.exe.config文件的修改失效。在release狀態下程序修改的是項目名.exe.config,修改永久有效。

有一個辦法可以避免上面的問題,把Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);用下面2行代碼替換

string assemblyConfigFile = Assembly.GetEntryAssembly().Location;
Configuration config = ConfigurationManager.OpenExeConfiguration(assemblyConfigFile);

debug狀態修改項目名.vshost.exe.config,項目名.exe.config

release狀態修改項目名.vshost.exe.config,項目名.exe.config


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章