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

У меня есть приложение Windows, которое использует блок, который хранит некоторые параметры конфигурации в параметрах настройки приложения по умолчанию.

Настройки могут быть изменены во время выполнения и сохраняются таким образом:

Properties.Settings.Default.SelectedCOMPort = options.SelectedCOMPort;
Properties.Settings.Default.Save();

Настройки сохраняются правильно, и я подтверждаю это путем рассмотрения user.config файла, сохраненного в пользовательском каталоге приложения, Например.

C:\Documents and Settings\e399536\Local Settings\Application Data\MyCompany\MyTool

Однако, когда инструмент закрыт и затем запущен снова, все настройки загружаются своими значениями по умолчанию.

При проверке user.config файла, после того как работает приложение, подтверждает, что настройки все еще как сохраняются.

Настройки загружаются таким образом:

options.SelectedCOMPort = Properties.Settings.Default.SelectedCOMPort;

Почему настройки по умолчанию используют а не сохраненные?

Я пропустил что-то??

Tenaciouslmpy настройки загружаются во время конструктора блока, который самого загружается в событии загрузки формы основного блока.

Остин Это - автономное приложение, которое я отлаживаю в Visual Studio.

8
задан Kildareflare 5 February 2010 в 10:26
поделиться

2 ответа

Если вы перекомпилируете приложение между запусками, обратите внимание, что будет считаться, что новая версия приложения и не автоматически загрузит настройки для каждого пользователя. В этой ситуации необходимо обратиться к Settings.Default.Upgrade.

Одним из способов сделать это только при необходимости является добавление параметра NeedsUpgrade (значение True) к настройкам приложения по умолчанию для каждого пользователя. При запуске приложения проверьте, верно ли значение параметра NeedsUpgrade. Если это так, вызовите команду Upgrade, установите параметр NeedsUpgrade в False и сохраните настройки. При следующем изменении версии приложения значение параметра NeedsUpgrade сбрасывается до True, и вы автоматически вызываете команду Upgrade для повторного включения всех существующих пользовательских настроек.

Убедитесь, что вы устанавливаете параметр NeedsUpgrade после вызова команды Upgrade , иначе при обновлении настроек он будет стерт.

if (Settings.Default.NeedsUpgrade)
{
    Settings.Default.Upgrade();
    Settings.Default.NeedsUpgrade = false;
    Settings.Default.Save();
}
11
ответ дан 5 December 2019 в 12:58
поделиться

Похоже, вы отлаживаете приложение из Visual Studio, когда каждый раз, когда вы запускаете новый сеанс, вы начинаете с данными по умолчанию.

Если вы наблюдаете это с установленным выпуском, то я предполагаю, что вы на самом деле не используете строковые значения, когда вы думаете, что это так.

2
ответ дан 5 December 2019 в 12:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: