2009-03-07 1 views
9

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

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

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

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

ответ

14

У вас есть опция «Заявки на проверку обновлений»?

Посмотрите Exploring Secrets of Persistent Application Settings (раздел под названием «Сохранение настроек между версиями программы»):

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

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

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

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

+2

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

+0

Сверх того, оператор my if всегда считывал Properties.Settings.Default.UpgradeSettings как false, даже если значение по умолчанию равно True. Мне пришлось изменить параметр, который будет называться «upgrade_settings», чтобы он читался как «Истина», –

0

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

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