Сохранение переменных app.config в обновлениях с помощью щелчка после развертывания

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

Вопрос

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

<userSettings>
    <app.My.MySettings>
      <setting name="Email" serializeAs="String">
        <value />
      </setting>
      <setting name="UserName" serializeAs="String">
        <value />
      </setting>
    </app.My.MySettings>
  </userSettings>

Как я могу предотвратить это?

Есть ли способ извлечь переменные из предыдущей версии приложения?

Это было полезно?

Решение

У вас есть " Приложения должны проверять наличие обновлений " опция проверена?

Ознакомьтесь с Изучением секретов постоянных настроек приложения (раздел под названием " Сохранение настроек между версиями программы "):

  

Для любых настроек из текущего   версия, которая соответствует настройкам в   предыдущая версия, эта процедура будет   импортировать их в текущую версию   файл user.config:

В точке входа в вашу программу поместите следующий код.

if (Properties.Settings.Default.UpgradeSettings) 
{
   Properties.Settings.Default.Upgrade();
   Properties.Settings.Default.UpgradeSettings = false;
}

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

Другие советы

Если вы используете настройки уровня пользователя вместо настроек уровня приложения, он скопирует их вперед при получении новой версии. Однако безопаснее всего отделить эти данные от обновления ClickOnce, "опыт". Посмотрите, поможет ли это:

http://robindotnet.wordpress.com/2009/08/19/where-do-i-put-my-data-to-keep-it-safe-from-clickonce-updates/

scroll top