我想在WPF应用程序配置文件(app.config)中管理用户特定的配置设置。在设置(.msi使用自定义操作)时,我要求用户输入一些配置参数,并希望将其存储在app.config中。还允许用户通过配置窗口更新这些设置。我尝试了两种方法,但没有按照预期工作。
方法1:我在app.config文件的appSettings部分添加了可配置参数。设置时,我接受这些参数的值,并使用ConfigurationManager将其写入app.config。它工作正常。这里的配置对所有用户都是通用的。
问题:由于Windows 7操作系统安全性无法在用户运行应用程序时编写/更新配置参数值,并从配置窗口修改相同值。由于app.config文件存储在“Program Files”下,Win 7安全性不允许它进行修改。如果我使用“以管理员身份运行”选项,它工作正常。
方法2:将可配置设置存储到Properties.Settings.Default(WPF项目 - >属性 - >设置),该设置添加到userSettings / WPFSamples.Properties.Settings部分下的app.config文件中。现在,用户可以从配置窗口更改可配置参数的值,并使用Properties.Settings.Default更新为用户设置文件(C:/ Users / DevUser1 / AppData / Local),解决了Windows 7安全性问题。此方法允许存储用户特定的配置。
问题:设置时我接受可配置的值但不能使用Properties.Settings.Default(Properties.Settings.Default.Save())将其写入用户配置文件。它没有抛出任何异常,但由于在用户启动应用程序,修改可配置参数并保存之前未创建用户设置文件(C:/ Users / DevUser1 / AppData / Local),因此未写入任何异常。