У меня есть приложение 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.
Если вы перекомпилируете приложение между запусками, обратите внимание, что будет считаться, что новая версия приложения и не автоматически загрузит настройки для каждого пользователя. В этой ситуации необходимо обратиться к 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();
}
Похоже, вы отлаживаете приложение из Visual Studio, когда каждый раз, когда вы запускаете новый сеанс, вы начинаете с данными по умолчанию.
Если вы наблюдаете это с установленным выпуском, то я предполагаю, что вы на самом деле не используете строковые значения, когда вы думаете, что это так.