Почему настройки моего приложения не сохраняются?

StackOverflow https://stackoverflow.com/questions/1054422

  •  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 также вы можете видеть, что даже настройки всего приложения не сохраняются в файле конфигурации.

[Название компании] и [Название продукта] указаны в настройках вашей информации о сборке.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top