2009-11-05 2 views
4

Я исхожу из ApplicationSettingsBase, чтобы сохранить наши настройки пользователей, однако при увеличении номера сборки приложение использует новую папку настроек, и поэтому старые настройки теряются. Каков подходящий способ справиться с ситуацией с общими настройками по различным номерам сборки.Как обмениваться настройками между различными версиями одного и того же программного обеспечения

ответ

7

У вас есть пользовательский параметр под названием Upgraded, boolean, который по умолчанию имеет значение false. Затем выполните проверку:

if (!Properties.Settings.Default.Upgraded) 
    { 
    Properties.Settings.Default.Upgrade(); 
    Properties.Settings.Default.Upgraded = true; 
    Properties.Settings.Default.Save(); 
    Trace.WriteLine("INFO: Settings upgraded from previous version"); 
    } 

Это обновит настройки из предыдущей версии, если это первый запуск новой версии.

+0

я использовал этот код в моих настройках объектов конструктору общественных MySettings() : основание() { , если (это [ "Модернизированный"] == NULL) {// это начальная нагрузка, поэтому обновить настройки this.Upgrade(); this.Upgraded = true; } } работает отлично. веселит. –

+0

В случае, если вам было интересно, метод обновления будет использовать все предыдущие настройки версии и переопределить текущие параметры версии. Следовательно, почему вам нужен флаг, а не просто обновлять его каждый раз. – mike

Смежные вопросы