【问题标题】:User settings in C#C#中的用户设置
【发布时间】:2014-01-28 11:05:34
【问题描述】:

我正在尝试在设置中动态保存 Name Value 对。我可以动态地看到新保存的值。但是,当我从属性窗口访问设置页面时,它会显示相同的旧值。这是代码:

 Properties.Settings.Default.Name = textBox1.Text;
 Properties.Settings.Default.Age = textBox2.Text;
 Properties.Settings.Default.Save();

有什么建议吗?

【问题讨论】:

  • 你说的属性窗口,是指Visual Studio里面的那个吗?
  • 是的。当我们右键单击解决方案->属性->设置时得到的

标签: c# .net winforms visual-studio-2010


【解决方案1】:

假设您正在使用 Visual Studio 测试您的应用程序,您会遇到问题,因为当您更改应用程序的设置时,您并没有更改原始设置文件。当 Visual Studio 开始运行应用程序时,它会在您的代码名为“obj/Debug”或“obj/Release”的目录中创建一个文件夹,并将所有 DLL 和资源(包括设置文件)复制到该文件夹​​中。

这意味着对设置的更改将反映在您的“obj/Debug/yourappname.exe.config”中,而不是原始文件中。例如,如果您使用文本编辑器打开此文件,您会看到内容已更改。请记住,每次您在 Visual Studio 中重新编译应用程序并开始运行时,此文件都会被原始文件替换,从而丢失您的新设置。

您可以在该文件夹中手动运行 .exe 应用程序并验证您的设置是否已保留。

【讨论】:

  • 所以,您的设置不会反映在原始文件中。但是都存放在settings.exe里面的Debug目录下
  • \bin\Debug 目录中的 appname.exe.config 仍然包含用户应用设置的默认值。这是将 app.config 编译到输出文件夹的结果。持久的运行时设置将保存在名为 user.config 的文件中。 User.config 可以在 Windows 用户配置文件下找到。例如,在 Windows7 上,默认路径为 C:\Users\\AppData\Local\\\\user.config。 \bin\Debug 文件夹中的 yourapp.exe.config 将始终包含默认值,因为您希望使用默认设置部署应用程序。
【解决方案2】:

编译后,设置文件被部署到 yourapplication.exe.config 文件中。这是您要更改的文件 (/Debug/app.exe.config)。如果您想在“属性窗口”中查看更改,您必须手动打开 .settings 文件并编辑 xml。

注意:更改 .config 文件后,更改是持久的 .. 但仅在您再次编译应用程序之前。

【讨论】:

    【解决方案3】:

    解决方案->属性->设置是您设置默认值的地方。用户设置可以在运行时更改,并且会在您的应用程序中保留,但不会写回您的 Visual Studio 项目。

    在您的示例中,如果您在随后的时间再次运行该程序(* 不是通过在 Visual Studio 中点击调试/重建),您保存在 sn-p 中的设置将被保留。

    假设您的程序已部署在用户的电脑上 - 不应该有一种机制可以更改您的 Visual Studio 项目设置文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-10
      • 1970-01-01
      • 2011-01-17
      • 2012-07-28
      • 2020-12-25
      • 1970-01-01
      • 1970-01-01
      • 2018-04-08
      相关资源
      最近更新 更多