Настройки.настройка дает различные значения в режиме отладки


Первая странность:

Мне действительно интересно, почему я получаю разные значения из файла Settings.settings в режимах отладки и без отладки. Другими словами, я запускаю свое приложение в режимах без отладки (run - > start without debuging) и в режимах отладки (rub-> debug). И он всегда дает мне разные значения для одного и того же ключа в этих режимах.

Вторая странность:

Когда я изменяю значения, хранящиеся в файле Settings.settings с моим приложением во время выполнения, значения не являются измененный. Я вижу предыдущие значения в этом файле, когда открываю его в Visual Studio. Обратите внимание, что я не забываю позвонить Default.Save(), чтобы сохранить изменения.

В чем их причина? Почему они возникают и как их решить?

1 2

1 ответ:

Причина проста. При отладке запускается не само приложение, а процесс размещения Visual Studio, в котором выполняется код. Поскольку настройки относятся к исполняемому файлу, вы получаете для размещенного исполняемого файла VS Debugger различные ранее сохраненные настройки, как если бы вы запускали приложение напрямую.

Вы можете отключить это странное поведение, выбрав в своем

Свойства Проекта-Debug -

    uncheck Enable Visual Studio Hosting Process.

Настройки являются неизменяемыми (только для чтения), если они являются областью применения . Когда вы вызываете save on settings with user scope, они будут сохранены в вашем профиле пользователя. Приложение.содержимое конфигурации никогда не изменяется, поэтому имеет смысл разрешить администратору только установку приложения. Позже пользователи могут изменить настройки, записав "diff" в свой локальный профиль пользователя.