Почему настройки моего приложения не сохраняются?
-
20-08-2019 - |
Вопрос
Итак, у меня есть некоторые настройки, которые имеют пользователь область видимости, но по какой-то причине они не сохраняются в файле .exe.config.Я делаю следующее:
Properties.Settings.Default.Email = "new@value.com";
Properties.Settings.Default.Save();
Тем не менее, я смотрю на файл настроек в папке debug, и он по-прежнему используется по умолчанию, который я установил в visual studio.Я делаю это неправильно?
Решение
Пользовательские настройки зависят от конкретного пользователя, поэтому они не будут сохранены обратно в файл .exe.config, который является общесистемным.
Из документов LocalSettingsProvider
:
Настройки, относящиеся к области приложения, и пользовательские настройки по умолчанию хранятся в файле с именем application.exe.config, который создается в том же каталоге, что и исполняемый файл .Приложение параметры конфигурации доступны только для чтения.Конкретные пользовательские данные хранятся в файле с именем
username.config
, хранящийся в домашнем каталоге пользователя.
Итак, для приложения UserSettingsTest просто запустите из VS под отладчиком (отсюда и бит vshost) В итоге я получил путь к:
C:\Users\Jon\AppData\Local\UserSettingsTest
\UserSettingsTest.vshost.e_Url_pdqoppugkz1vaawbhwkkcu5ibxpi2fgu
\1.0.0.0\user.config
Другие советы
Если в вашей информации о сборке настроено автоматическое генерирование любых номеров версий (1.0.*), то при каждой отладке вашего приложения номер версии будет отличаться, и поэтому каждый раз будет создаваться новый файл.
Если это так, вам нужно будет выполнить обновление файла настроек:
Properties.Settings.Default.Upgrade()
Вы также можете установить параметр NeedsUpgrading
Для true
по умолчанию и установите для него значение false после выполнения обновления, чтобы конечные пользователи, которые не меняют номера версий при каждом запуске приложения, не обновлялись постоянно
Все настройки области действия пользователя сохраняются в разделе данные приложения в папке, в которой указаны версия вашего приложения и его название.
Вы можете просмотреть эти папки, нажав "синхронизировать" в диалоговом окне "Настройки приложения".
В Vista в целом:
- c:\users [currentuser]\AppData\Local[Название компании][AppName]\версия
- c:\users [currentuser]\AppData\Роуминг[Название компании][AppName]\версия
Сделано таким образом из-за настроек, связанных с текущий пользователь и ОАК.В Vista также вы можете видеть, что даже настройки всего приложения не сохраняются в файле конфигурации.
[Название компании] и [Название продукта] указаны в настройках вашей информации о сборке.