c# - 无法让 App.config 设置持续存在

标签 c# xml winforms app-config

问题:用户在初始启动时设置的值不会保留在 App.config xml 中

所需的功能:除非用户更改,否则用户设置的值将保留存储在 App.config 中

我试图做到这一点,以便用户第一次运行该应用程序时,他们会设置一个文件夹,用于保存他们使用该程序制作的文件。我想将该字符串存储在 App.config 中,这样它只需设置一次。截至目前,它将设置它并将其保存在内存中,但如果程序关闭,该值将丢失。我认为调用 .save() 方法可以修复它,但没有。 在表单打开时:

if (ConfigurationManager.AppSettings["SaveFilePath"] == null)
{
    FolderBrowserDialog fbd1 = new FolderBrowserDialog();
    fbd1.RootFolder = Environment.SpecialFolder.MyComputer;
    fbd1.Description = "Select a folder to save to:";
    fbd1.ShowNewFolderButton = true;

    if (fbd1.ShowDialog() == DialogResult.OK)
    {
        Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
        config.AppSettings.Settings.Add("SaveFilePath", fbd1.SelectedPath);
        config.Save();

        ConfigurationManager.RefreshSection("appSettings");
    }
}

最佳答案

应该使用应用程序设置文件(在项目的属性页面中查看它)来存储和检索用户设置。

参见 Using Settings in C# . 该页面显示 VS 2005,但它仍然适用于使用 VS 2017 的项目


enter image description here

关于c# - 无法让 App.config 设置持续存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43482193/

相关文章:

java - 如何获取drawable中图片的照片名称?

c# - 键盘记录器如何显着提高 PostMessage() 的性能

ios - 使用 Libxml2 解析 XML 时占用大量 RAM

java - Google Map Android API V2 中两个位置之间的行驶距离和旅行持续时间

c# - Unity3d,当前选择的脚本后端(.NET)未安装

c# - 重新定位列表中的项目

java - 比较 Visual Basic sql 和 Java sql

c# - 如何从使用存储过程的数据表填充 ListView

c# - TextBox 绑定(bind)到 double 并输入小于 -1 的负数时出现问题

c# - 通过反射获取公共(public)静态字段的值