.net - studio - Automáticamente "actualizar" la configuración del usuario de la versión anterior del archivo app.config?
configurationmanager c# (3)
Cada vez que compilo mi aplicación y los cambios en el número de versión (tengo un número de compilación que se incrementa automáticamente), pierdo la configuración de app.config configurada por el usuario, ya que están almacenados en la carpeta AppData para una versión específica. Básicamente, cada versión de mi aplicación comienza desde cero en lo que respecta a la configuración del usuario.
Si bien esto es una molestia leve en el desarrollo, plantea la pregunta a medida que me acerco a la implementación / publicación: si uso app.config para almacenar mi configuración de usuario, ¿se rociarán las configuraciones personalizadas del usuario cada vez que instalen un parche que cambie la versión? número de mi aplicación? Si es así, ¿hay una manera fácil de "actualizar" la configuración de la versión anterior? Sé que usar HKCU en el registro es otra opción, pero me gusta la facilidad del espacio de nombres My.Settings, y me gustaría quedarme con app.config.
Otra pregunta SO pregunta algo similar, aunque la respuesta no parece tan clara. ¿Configurará mi MSI para que le pida al usuario que actualice sea suficiente para preservar estas configuraciones de nivel de usuario?
¿Has considerado la implementación de ClickOnce? Este tema luego se cubre en profundidad . IMO, ClickOnce es mucho más fácil tanto para el desarrollador como para el usuario.
¿Has mirado ApplicationSettingsBase.Upgrade() ? Permite actualizar la configuración desde una versión anterior mediante la siguiente llamada:
My.Settings.Upgrade()
No estoy seguro de por qué, pero ni el comando de actualización ni la versión anterior parecen funcionar para mí. ¿Qué podría estar haciendo mal? ¿Debo llamar a un comando de actualización o algo así? Estoy haciendo esto en la carga de formulario, ¿debería ser un evento de aplicación?
ACTUALIZAR
Descubierto por qué, parece que no funciona cuando usa un número de versión principal de 4 dígitos. Estaba usando el año 2012 como el número de versión principal. Lo cambié a 12 y funciona como un amuleto, aunque no cumple con el milenio. Todavía tengo 88 años antes de tener que empezar a preocuparme por eso.