【问题标题】:Can not save changes to properties.settings无法保存对 properties.settings 的更改
【发布时间】:2016-07-07 18:49:00
【问题描述】:

我第一次尝试在 C# WPF 项目中使用 properties.settings。

我有这个代码:

Settings.Default.comPort = "";
Settings.Default.baudRate = 9600;
Settings.Default.startUp = false;
Settings.Default.taskBar = true;
Settings.Default.desktopNotif = false;
Settings.Default.reset = false;
Settings.Default.Save();  

但它不起作用,设置也没有保存。所以我添加了这一行

Console.WriteLine("test");

在那部分之后,检查它是否通过代码,并且执行良好。
所以它似乎只是跳过那些行而不执行甚至抛出任何异常。

【问题讨论】:

  • 你怎么知道他们没有得救? Which file are you looking at? this thread 会回答你的问题吗?
  • 您在哪里检查了更改? Default 表示默认,它们是存储在您的配置文件中的初始值,不是保存在用户配置文件中的值。或者您尝试更改未保存的应用程序范围属性
  • 我用了两种方法来测试它们是否被保存。首先,我注释掉了这些行并尝试读取该值,但它为空。其次,我检查了 app.config 文件,它包含字段但值为 null
  • @Amir 没有测试任何东西。如果您尝试更改应用程序值,则无论如何都不会保存任何内容。用户范围的值存储在用户的 AppData\AppName 文件夹中
  • 你检查过 AppData 文件夹吗?不要假设这样的基本功能存在错误。人们早就注意到了。您需要隔离实际发生的情况。例如,如果您正在调试应用程序,则每次检测到更改时可能会清除设置。如果您添加/删除/更改设置,您需要调用Upgrade 来读取设置。否则你的代码会在尝试读取旧的、不兼容的值时崩溃

标签: c# wpf app-config properties.settings


【解决方案1】:

感谢Panagiotis Kanavos 我终于找到了问题所在。代码是正确的,但是当程序在 Visual Studio 中运行时,每次设置都会被覆盖。构建完成后,我在bin/release 文件夹中运行了.exe file,它运行良好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-18
    • 1970-01-01
    • 1970-01-01
    • 2021-03-22
    • 2012-02-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多