【发布时间】:2010-11-02 05:06:53
【问题描述】:
我以为我知道这一点,但今天我再次被证明是错误的。
运行 VS2008、.NET 3.5 和 C#。我使用默认值将用户设置添加到属性设置选项卡中,然后使用以下代码读取它们:
myTextBox.Text = Properties.Settings.Default.MyStringProperty;
然后,在用户编辑选项对话框中的值后,我将其保存如下:
Properties.Settings.Default.MyStringProperty = myTextBox.Text;
Properties.Settings.Default.Save();
我的问题是,这个新值保存在哪里?可执行目录中的 MyApp.exe.config 文件没有更新,它仍然包含默认值。另外,据我所知,该目录中的其他文件也没有更新!但是,当程序重新读取该值时,它会获取更改后的值,所以我知道它保存在某个地方...
这不仅仅是学术性的,今天早上我需要能够手动编辑该值,当我找不到任何正在改变的东西时,我把自己难住了。
【问题讨论】:
-
需要注意的是,存储位置可能会在不同版本的框架或操作系统之间发生变化。不要将任何程序化的东西硬编码到存储位置。
-
如果您在 Visual Studio 中开发新应用,请查看 AppData\Local\Microsoft\YOUR APPLICATION NAME 文件名为 user.config。我在 Windows 7 中
-
或在AppData\Local 下
-
我一直在努力解决的问题导致我提出了这个问题和其他问题:直到 applicationsSettings.Save(); 才创建 user.config叫做。 (其中 applicationSettings 定义为 ApplicationSettings applicationSettings = new ApplicationSettings( this );)。