Persistance des variables app.config dans les mises à jour via le déploiement en une seule fois
-
05-07-2019 - |
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?
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: