Persistance des variables app.config dans les mises à jour via le déploiement en une seule fois

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

Question

Chaque fois qu'une nouvelle mise à jour est publiée pour une application en cliquant une fois, les variables du fichier app.config sont détruites

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

Comment puis-je empêcher cela?

Existe-t-il un moyen de modifier les variables de la version précédente de l'application?

Était-ce utile?

La solution

Disposez-vous de l'option " Les applications doivent rechercher les mises à jour " option cochée?

Consultez Exploration des secrets des paramètres d'application persistants (section intitulé "Gestion des paramètres entre les versions du programme"):

  

Pour tout réglage du courant   version qui correspond aux paramètres de la   version précédente, cette routine sera   les importer dans la version actuelle   fichier user.config:

Au point d'entrée de votre programme, placez le code suivant.

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

Notez que UpgradeSettings est un paramètre utilisateur booléen (pas une application) que vous devez ajouter vous-même et que vous voulez que la valeur par défaut soit True .

Autres conseils

Si vous utilisez des paramètres de niveau utilisateur au lieu de paramètres de niveau application, ils seront copiés lors de l'extraction d'une nouvelle version. Cependant, la solution la plus sûre consiste à séparer ces données de la mise à jour de ClickOnce, euh, "expérience". Voir si cela aide:

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top