Persistiendo las variables app.config en las actualizaciones a través de Haga clic una vez en la implementación
-
05-07-2019 - |
Pregunta
Cada vez que se lanza una nueva actualización para una aplicación con un solo clic, las variables en el archivo app.config se destruyen
<userSettings>
<app.My.MySettings>
<setting name="Email" serializeAs="String">
<value />
</setting>
<setting name="UserName" serializeAs="String">
<value />
</setting>
</app.My.MySettings>
</userSettings>
¿Cómo puedo prevenir eso?
¿Hay alguna forma de encontrar las variables de la versión anterior de la aplicación?
Solución
¿Tiene el " Las aplicaciones deben buscar actualizaciones " opción marcada?
Eche un vistazo a Explorando los secretos de la configuración de aplicaciones persistentes (la sección titulado " Mantenimiento de la configuración entre las versiones del programa "):
Para cualquier configuración de la actual versión que coincide con la configuración en el versión anterior, esta rutina será Importarlos en la versión actual archivo user.config:
En el punto de entrada a su programa, coloque el siguiente código.
if (Properties.Settings.Default.UpgradeSettings)
{
Properties.Settings.Default.Upgrade();
Properties.Settings.Default.UpgradeSettings = false;
}
Tenga en cuenta que UpgradeSettings es un ajuste booleano de usuario (no de aplicación) que debe agregarse y desea que el valor predeterminado sea True
.
Otros consejos
Si usa configuraciones de nivel de usuario en lugar de configuraciones de nivel de aplicación, las copiará hacia adelante cuando se recupere una nueva versión. Sin embargo, lo más seguro es separar estos datos de la actualización de ClickOnce, uh, " experiencia " ;. Mira si esto ayuda: