【问题标题】:WPF: Changing config file user settings at runtime?WPF:在运行时更改配置文件用户设置?
【发布时间】:2011-01-28 00:40:54
【问题描述】:

我正在尝试更改我的 WPF 应用程序中的一些配置文件用户设置值,但它只能部分工作。该值已正确更改,并且程序可以使用该值正常运行。我什至可以重新启动程序,并且该值仍然是我将其更改为的值。问题是当我打开 .exe.config 文件时,该值仍然是旧值。我使用此代码更改值:

Properties.Settings.Default.ProjectNumber = varTestExample;
Properties.Settings.Default.Save();

此保存代码在哪里保存更改以及在我运行此代码后程序如何/在哪里读取值? 如果我运行程序的干净版本,则 ProjectNumber 值是从 .exe.config 文件中正确获取的,如果我更改配置文件中的值,它也会在我运行程序时更改。但是一旦我运行上面的代码,程序就不会从配置文件中读取值。为什么?

【问题讨论】:

    标签: c# wpf app-config


    【解决方案1】:

    设置保存在每个用户的基础上。您应该查看C:\Documents and Settings\[UserName]\... (WinXP) 或C:\Users\... (Vista/7) 中的Application Data 文件夹。

    在不保存任何设置的情况下,程序使用默认配置,即您的*.exe.config 文件。但是,一旦您保存更改,就会创建一个用户特定的设置文件,并在下次启动时加载此文件。我想,这应该可以解释你的行为。

    【讨论】:

      【解决方案2】:

      用户保存的设置存储在用户的 AppData 目录下。通常 C:\Users\\AppData\Local\\

      .exe.config 文件中存储的值是默认值(您在 VS 的设置编辑器中设置)

      希望对你有帮助

      【讨论】:

        【解决方案3】:

        Properties.Settings 仅指基于用户的设置,应用程序设置是一组完全独立的设置,如果您使用 ClickOnce 安装,这些设置将被覆盖 - 因此请注意您存储在那里的配置。

         private void updateDataInConfigFile()
            {
                Xml xmlConfigFile = new Xml(ProjectName.sSettingFileName);
                xmlConfigFile.SetValue("My Setting Section", "MyFirstSetting", MySettingValue);
        }
          private void GetDataFromConfigFile()
            {
                Xml xmlConfigFile = new Xml(MyProject.sSettingFileName);
        
                txtAccessDriverId.Text = xmlConfigFile.GetValue("Mys Setting Section", "MyFirstSetting").ToString();
        }
        

        【讨论】:

          猜你喜欢
          • 2020-06-12
          • 1970-01-01
          • 2016-02-11
          • 1970-01-01
          • 1970-01-01
          • 2015-12-12
          • 2013-09-25
          • 2015-09-05
          • 1970-01-01
          相关资源
          最近更新 更多