gpt4 book ai didi

c# - 如何以编程方式更新和保存 app.config 应用程序设置

转载 作者:行者123 更新时间:2023-11-30 22:32:05 25 4
gpt4 key购买 nike

我目前正在从事一个 WPF/.Net 项目,在此项目中,用户可以选择完全更改应用程序的外观,我正在尝试使用配置管理在提交后编写这些设置,但我似乎无法将新值添加到 app.config 文件,下面是我的方法

Public Sub SetApplicationSetting(pstrAppSettingName As String, pstrAppSettingValue As String)
Dim lobjconfig As System.Configuration.Configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None)

lobjconfig.AppSettings.Settings.Add(pstrAppSettingName, pstrAppSettingValue)
lobjconfig.Save(ConfigurationSaveMode.Full)
ConfigurationManager.RefreshSection("appSettings")
End Sub

有什么想法吗?

现在街上的说法是我不能添加到已经存在的东西,所以我想也许我应该在更新之前先删除它,但仍然没有,这是新代码

 Dim lobjconfig As System.Configuration.Configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None)

lobjconfig.AppSettings.Settings.Remove(pstrAppSettingName)
lobjconfig.AppSettings.Settings.Add(pstrAppSettingName, pstrAppSettingValue)


lobjconfig.AppSettings.Settings.CurrentConfiguration.Save()
lobjconfig.Save(ConfigurationSaveMode.Full, True)

ConfigurationManager.RefreshSection("appSettings")

最佳答案

我的猜测是您正在尝试更改所有用户的配置 (ConfigurationUserLevel.None),并且您可能无权这样做。我希望在失败时出现异常,而你没有说抛出一个异常,所以我可能走错了路。

要找到罪魁祸首,您可以尝试 ConfigurationUserLevel.PerUserRoamingAndLocalConfigurationUserLevel.PerUserRoaming 看看效果是否更好。

或者,但我怀疑它是否有所作为,您可以使用以下行专门从特定位置获取配置:

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

关于c# - 如何以编程方式更新和保存 app.config 应用程序设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8880514/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com