2

第一个奇怪:

我真的很想知道为什么我Settings.settings在调试和非调试模式下从文件中获取不同的值。换句话说,我在不调试(运行-> 不调试启动)和调试模式(rub-> 调试)下启动我的应用程序。在这些模式下,它总是为我提供相同键的不同值。

第二个奇怪:

当我在运行时使用我的应用程序更改存储在Settings.settings文件中的值时,这些值不会更改。在 Visual Studio 中打开此文件时,我会看到该文件中的先前值。注意我不要忘记打电话Default.Save()来保存更改。

他们的原因是什么?为什么会出现这些问题,我该如何解决?

4

1 回答 1

4

原因很简单。调试时,您不会启动应用程序本身,而是启动执行代码的 Visual Studio 托管进程。由于设置是每个可执行文件特定的,因此您可以为 VS 调试器托管的可执行文件获取不同的先前保存的设置,就像您直接启动应用程序一样。

您可以通过在您的

项目属性 - 调试 -

    uncheck Enable Visual Studio Hosting Process.

如果它们是应用程序范围的,则这些设置是不可变的(只读)。当您使用用户范围调用保存设置时,它们将存储在您的用户配置文件中。app.config 内容永远不会改变,这对于只允许管理员安装应用程序是有意义的。稍后,用户可以通过将“差异”写入其本地用户配置文件来更改设置。

于 2012-05-06T10:46:37.243 回答