在 WPF 应用程序中管理(添加/更新)用户特定配置设置
我想管理 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 文件中。它解决了 Windows 7 安全问题,现在用户可以从配置窗口更改可配置参数的值,并使用 Properties.Settings.Default 更新到用户设置文件 (C:/Users/DevUser1/AppData/Local)。这种方法允许存储用户特定的配置。
问题:在设置时,我接受可配置值,但无法使用 Properties.Settings.Default (Properties.Settings.Default.Save()) 将其写入用户配置文件。它没有抛出任何异常,但它没有被写入任何地方,因为直到用户启动应用程序、修改可配置参数并保存后才会创建用户设置文件(C:/Users/DevUser1/AppData/Local)。
I want to manage user specific configuration settings in WPF application configuration file (app.config). While setup (.msi using custom action) I ask user to enter some of the configuration parameters and want to store it in app.config. Also allows user to update these settings through configuration window. I tried following two approaches but didn't working as per expectation.
Approach 1: I added configurable parameters to appSettings section of app.config file. While setup I accepts values for those parameters and write it to app.config using ConfigurationManager. It's working fine. Here configuration are common to all the users.
Issue: Due to Windows 7 OS security unable to write/update configuration parameters value when user run application and modify the same from the configuration window. Since the app.config file stored under "Program Files" Win 7 security not allowing it to modify. It is working fine if I use "run as administrator" option.
Approach 2: Stored configurable settings to Properties.Settings.Default (WPF Project -> Properties -> Settings) which added to app.config file under userSettings/WPFSamples.Properties.Settings section. It has resolved issue with Windows 7 security now user can change the values of configurable parameters from configuration window and it updated to user setting file (C:/Users/DevUser1/AppData/Local) using Properties.Settings.Default. This approach allows to store user specific configuration.
Issue: While setup I accepts configurable values but not able to write it to user configuration file using Properties.Settings.Default (Properties.Settings.Default.Save()). It didn't throwing any exception but it has not been written anywhere since the user settings file (C:/Users/DevUser1/AppData/Local) isn't created until user start the application, modify the configurable parameters and saves it.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论