Почему сохраненные пользовательские настройки не загружаются?
у меня есть приложение windows, которое использует сборку, которая хранит некоторые параметры конфигурации в настройках приложения по умолчанию.
настройки могут быть изменены во время работы и сохраняются таким образом:
Properties.Settings.Default.SelectedCOMPort = options.SelectedCOMPort;
Properties.Settings.Default.Save();
настройки сохранены правильно, и я подтверждаю это, глядя на пользователя.конфигурационный файл, сохраненный в каталоге приложений пользователей, например
C:Documents and Settingse399536Local SettingsApplication DataMyCompanyMyTool
однако, когда инструмент закрыт, а затем снова запущен, все настройки загружаются их значения по умолчанию.
проверка пользователей.файл конфигурации после запуска приложения подтверждает, что параметры по-прежнему сохраняются.
настройки загружаются таким образом:
options.SelectedCOMPort = Properties.Settings.Default.SelectedCOMPort;
почему используются настройки по умолчанию, а не сохраненные?
Я что-то пропустил??
@ Tenaciouslmpy Настройки загружаются во время конструктора сборки, который сам загружается в виде load события main собрание.
@ Austin Это автономное приложение, которое я отлаживаю в Visual Studio.
2 ответов
Если вы перекомпилируете приложение между запусками, обратите внимание, что он будет учитывать, что новая версия приложения и будет не автоматическая загрузка настроек для каждого пользователя. Вам нужно вызвать настройки.По умолчанию.Обновление в этой ситуации.
один из способов сделать это только при необходимости-добавить параметр NeedsUpgrade (значение True) к настройкам приложения по умолчанию для каждого пользователя. При запуске приложения проверьте, является ли NeedsUpgrade true. Если это так, вызовите обновление, установите NeedsUpgrade в False и сохраните установка. При следующем изменении версии приложения NeedsUpgrade сбросит значение True, и Вы автоматически вызовете обновление, чтобы снова ввести любые существующие настройки пользователя.
убедитесь, что вы устанавливаете NeedsUpgrade после вызов обновления, или он будет стерт, когда настройки будут обновлены.
if (Settings.Default.NeedsUpgrade)
{
Settings.Default.Upgrade();
Settings.Default.NeedsUpgrade = false;
Settings.Default.Save();
}
Это звучит так, как будто вы отлаживаете приложение из Visual Studio, когда каждый раз при запуске нового сеанса вы начинаете с данных по умолчанию.
Если вы видите это с установленным выпуском, то я бы предположил, что вы на самом деле не используете строковые значения, когда думаете, что это так.