我有一些Windows窗体的应用程序级别设置,我可以使用Properties.Settings.Default.offset
阅读。我想保留这些设置,以便以后可以使用这些设置。
根据SO的this帖子,我尝试了以下内容 -
Properties.Settings.Default["offset"] = this.offsetTextBox.Text;
Properties.Settings.Default.Save();
但它没有保存该值,因为即使在更改之后我也可以看到旧值。
答案 0 :(得分:0)
根据文档,检查生成的代码和问题," Why are my application settings not getting persisted?",应用程序作用域设置是只读的。
要更新应用程序范围的设置,您需要更改<appsettings>
文件中相应的app.config
值:
请注意,对app.config
文件的更改应该会重新启动应用域,因此尝试更新自己的app.config
可能会与您预期的行为略有不同。
另请注意,将对*.exe.config
目录中生成的bin
文件进行更改,而不是对Visual Studio解决方案中的app.config
文件进行更改。
需要考虑的另一件事是:在已部署的应用程序中,除非您使用&#34;提升权限运行,否则您也不太可能拥有对app.config
文件的写入权限。
如果您想要保留/更新此类应用设置,请从OS X书中获取一个页面并创建*.plist
:
在应用程序启动时,检查该应用程序具有读/写访问权限的已知位置中的设置的XML文件。在OS X中,应用级设置位于/Library/Preferences
;用户级首选项位于~/Library/Preferences
。
如果它不存在,请创建它,使用相关设置的默认值填充它(这可能就像从<appsettings>
复制app.config
元素一样简单。
从该文件中读取您的应用级设置。
在该文件上放置FileSystemWatcher
以挂钩所有更改并更新设置。
你去吧。现在,您可以将应用级设置更新为您心中的内容。如果您需要还原,您只需要清除*.plist
文件。