第一个陌生感:
我真的很想知道为什么在调试和非调试模式下从Settings.settings
文件中获取不同的值。换句话说,我在没有调试的情况下启动我的应用程序(run-> gt; start而不是debuging)和调试模式(rub-> debug)。在这些模式下,它始终为我提供了相同键的不同值。
第二种陌生感:
当我在运行时使用我的应用程序更改Settings.settings
文件中存储的值时,值不会更改。我在Visual Studio中打开它时看到此文件中的先前值。注意我不会忘记致电Default.Save()
来保存更改。
他们是什么原因?它们为什么会发生,我该如何解决它们?
答案 0 :(得分:4)
原因很简单。调试时,不要启动应用程序本身,而是启动代码执行的Visual Studio托管过程。由于设置是针对每个可执行文件特定的,因此您可以获得VS Debugger托管可执行文件不同的先前保存的设置,就像您直接启动应用程序一样。
您可以在
中选择,以禁用这种奇怪的行为项目属性 - 调试 -
uncheck Enable Visual Studio Hosting Process.
如果设置为application scoped,则设置是不可变的(只读)。当您使用用户范围调用保存设置时,它们将存储在您的用户配置文件中。 app.config内容永远不会更改,这对于仅允许管理员安装应用程序是有意义的。稍后,用户可以通过将“diff”写入其本地用户配置文件来更改设置。