繁体   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