考虑一个C#应用程序,它有许多用户设置,有些是主动使用和更新的,有些则始终是只读的。在这种情况下,这样的只读设置属性最终会在每个用户维护的user.config?
中结束我看到一个有趣的行为,应用程序仅读取的几个用户配置设置最终在user.config中具有相同的未修改的默认值。我的应用程序已经过版本控制,因此在部署下一版本并且某些只读设置被设计更改时,新版本无法获取它们,因为ApplicationSettingsBase.Upgrade()会选择本地过时的值。
基本上,如果应用程序从不修改特定的设置属性,那么它在user.config中的结果和原因是什么?
此外,如何修复损坏并在将来升级时从user.config中删除现有的只读属性?
答案 0 :(得分:0)
没有看到在user.config文件中保存属性的代码我只能猜测,但我建议您有一些代码可以写入这些值,无论它们是否已从默认值更改,甚至如果他们可以改变默认值。
你有类似的东西:
Properties.Settings.Default.Property1 = this.SomeValue;
Properties.Settings.Default.Property2 = this.ReadOnlyValue;
Properties.Settings.Default.Save();
至于你的补充问题,我认为Save
会覆盖现有文件,而不仅仅是更新它。