Settings.setting дает различные значения в режиме отладки
Первая странность:
Мне действительно интересно, почему я получаю разные значения от Settings.settings
файл в режимах отладки и без отладки. Другими словами, я запускаю свое приложение в режиме без отладки (run-> start без отладки) и в режимах отладки (rub-> debug). И это всегда дает мне разные значения для одного и того же ключа в этих режимах.
Вторая странность:
Когда я изменяю значения, хранящиеся в Settings.settings
файл с моим приложением во время выполнения, значения не меняются. Я вижу предыдущие значения в этом файле, когда открываю его в Visual Studio. Обратите внимание, я не забываю позвонить Default.Save()
сохранить изменения.
В чем причина для них? Почему они происходят и как их решить?
1 ответ
Причина проста. При отладке вы запускаете не само приложение, а процесс размещения Visual Studio, где выполняется ваш код. Поскольку настройки зависят от исполняемого файла, вы получаете для исполняемого файла VS Debugger другие ранее сохраненные настройки, как будто вы запускаете приложение напрямую.
Вы можете отключить эту странную информацию, выбрав в
Свойства проекта - Отладка -
uncheck Enable Visual Studio Hosting Process.
Настройки являются неизменяемыми (только для чтения), если они находятся в области приложения. Когда вы звоните сохранить настройки в области пользователя, они будут сохранены в вашем профиле пользователя. Содержимое app.config никогда не изменяется, поэтому имеет смысл разрешить только установку приложения администратором. Позже пользователи могут изменить настройки, записав diff в свой локальный профиль.