程序设置未更新

时间:2015-01-08 20:17:27

标签: c# winforms

我创建了我的c#winforms应用程序,在属性中,settings.settings我已将字符串声明为“user”。当我第一次运行应用程序时,我可以使用以下代码成功读取它:

string user = Properties.Settings.Default.Username;

我可以为Username保存新值,并在代码中再次读取它们。但是当我更改settings.settings中的值并通过调试启动我的程序(例如将其更改为“NoLiver”)时,它不会使用新文本,它仍然将其读作“用户”而不是“NoLiver”。我不明白为什么会这样,因为我的其他程序没有这样做。

有人可以解释一下吗?我不确定您是否需要任何其他信息,但询问您是否需要任何信息。

1 个答案:

答案 0 :(得分:4)

可能发生的情况是设置是User Scoped设置而不是Application Scoped设置。当你有一个用户范围设置时,设置中的值只是默认值,如果你运行你的程序,为用户生成一个user.config文件,它将从中读取当前值user.config档案。

您有两个选项,将Username更改为应用程序作用域设置或更改程序集的版本号,这将导致生成新的设置文件,并且它将返回到默认值(如果您不希望它返回到您的设置类上的默认值调用Upgrade()一次,它将检查旧版本并从以前版本的程序复制设置)

编辑你还有一个选项,如果仅用于调试,请点击Settings.settings中的Synchronize按钮,这将删除硬盘中的用户设置文件,它将在下次运行程序时再次使用默认值。

enter image description here