Dot-Net

如何在不使用使用者設置的情況下在執行時讀取/寫入 app.config 設置?

  • February 17, 2020

我正在尋找一種方法來儲存可以在執行時使用Application Settings寫入的應用程序或機器級設置。使用者設置允許讀/寫,但應用程序設置不允許。我一直在使用使用者設置在執行時保存這樣的設置,但由於以下原因,這確實被證明是不切實際的:

  • 機器的所有使用者都需要共享設置。
  • 在支持電話中(尤其是在危機情況下),很難向使用者/員工解釋在哪裡可以手動查找和修改這些設置(appdata 是一個隱藏文件夾)。
  • 新版本的應用程序需要使用以前的設置(使用者設置似乎被新版本吹走了)。
  • 我們的員工通常會將應用程序複製到一個新文件夾,這也會重置使用者設置。

無論如何,我們公司的機器僅由一位使用者使用,因此通常不需要使用者特定的設置。

否則我真的很喜歡使用應用程序設置,並希望盡可能繼續使用它們。如果設置可以與 EXE 位於**同一文件夾中,**那將是理想的(就像好的 ol’ini 文件曾經那樣)。

**注意:**這是一個 WPF 應用程序,而不是 ASP.net Web 應用程序,因此沒有 web.config。

好吧,我還不想在執行時更改應用程序設置(這就是我使用使用者設置的目的),但我能夠做的是在安裝時編寫應用程序設置。我想類似的方法可能在執行時起作用。您可以嘗試一下,因為似乎沒有任何其他支持的解決方案 ATM。

   exePath = Path.Combine( exePath, "MyApp.exe" );
   Configuration config = ConfigurationManager.OpenExeConfiguration( exePath );
   var setting = config.AppSettings.Settings[SettingKey];
   if (setting != null)
   {
       setting.Value = newValue;
   }
   else
   {
       config.AppSettings.Settings.Add( SettingKey, newValue);
   }

   config.Save();

希望有幫助!

引用自:https://stackoverflow.com/questions/3638754