簡體   English   中英

在運行時更改 app.config - 在內存中 - 不工作“拒絕訪問”

[英]Change app.config at runtime - in memory - not working "Access denied"

    var configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
    if (configuration.AppSettings.Settings[key] == null)
    {
        configuration.AppSettings.Settings.Add(new KeyValueConfigurationElement(key, value));
    }
    else
    {
        configuration.AppSettings.Settings[key].Value = value;
    }
    configuration.Save(ConfigurationSaveMode.Modified);
    ConfigurationManager.RefreshSection("appSettings");

我已閱讀所有與 stackoverflow 相關的問題,答案是:您無法在運行時寫入 app.config 文件。 這對我來說很好。 但我也找到了接受的答案,說您可以使用上述代碼更改內存中的 app.config。 但是我得到文件是只讀的相同錯誤......即使這段代碼應該只在內存中更改?

我錯過了什么?

我正在使用 .net 框架 4.7.2。

@Muhkuh,app.config 文件僅在您處理源代碼和開發/編程應用程序時使用。 構建或發布項目后,構建輸出將寫入項目屬性中配置的文件夾。 您在文件中指定的所有值都會在應用程序的可執行文件運行以及ConfigurationManager類第一次讀取任何配置時讀取。 因此,應在運行應用程序之前更改配置文件。 如果要更改配置值,應考慮讀/寫配置提供程序,並將任何配置存儲在應用程序數據庫或配置數據庫的表中(這將由應用程序組件的設計決定)。 因此,更改來自實際app.config文件的配置值不是最佳實踐,也不建議這樣做。 問候

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM