Blo*_*ard 25 .net c# app-config
我在app.config中有一些设置,我打算成为'全局' - 即.任何用户都可以更改它们,所有用户都可以获得相同的设置.
但除非我将它们更改为用户设置,否则它们是只读的.
为什么是这样?
我应该如何坚持我的应用程序的全局设置?
编辑:
这实际上是一个Windows服务应用程序,它作为LocalSystem服务运行.它也可以由具有参数"/ config"的本地管理员手动运行,该参数启动Windows窗体以编辑配置值.
因此它%PROGRAMFILES%在两种情况下都具有写访问权限.
因此,我访问我的设置的方式是:
Settings.Default.MySetting = MyNewValue;
Run Code Online (Sandbox Code Playgroud)
当MySetting设置为Application时(在我的项目属性Settings.settings中),我得到一个编译时错误"MySetting是只读的".
我对这些东西不熟悉,还没有找到一个很好的解释它应该如何完成.例如,为什么我需要说'默认',这究竟意味着什么?我不知道.如果有人能指出我的app.config使用教程,那将非常有帮助.
Jad*_*ias 63
真正完整的答案:
app.config设置是只读的,因为有两种类型的设置:
除非应用程序发布者发布新版本,否则第一个不会更改.第二个不存储在app.config中,而是存储在user.config文件中.在此user.config文件的abscence中,app.config提供了默认值.
如果MySetting是用户设置:
Settings.Default.MySetting = MyNewValue;
Settings.Default.Save();
Run Code Online (Sandbox Code Playgroud)
它将使用新设置创建user.config文件[User Local Settings Application Data]\[company name]\[application].exe[hash string]\[version],这些设置将优先于app.config文件中的设置.