程序设置未更新

NoL*_*r92 2 c# winforms

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

string user = Properties.Settings.Default.Username;
Run Code Online (Sandbox Code Playgroud)

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

请有人能解释一下这是怎么回事吗?我不确定您是否需要任何其他信息,但请询问您是否需要任何其他信息。

Sco*_*ain 6

可能发生的是设置是用户范围设置而不是应用程序范围设置。当您有用户范围设置时,设置中的值只是默认值,如果您运行程序,user.config则会为用户生成一个文件,它将从user.config文件中读取当前值。

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

编辑:你还有一个选项,如果这只是为了调试,点击SynchronizeSettings.settings 中的按钮,这将从你的硬盘驱动器中删除用户设置文件,下次运行程序时它会再次使用默认值。

在此处输入图片说明