
Pues bien la
gran diferencia de las aplicaciones de Windows Forms con las aplicaciones web
es que si tienes una aplicación web y tienes que modificarla o actualizarla el proceso es
mucho más simple ya que modificas el archivo que tienes que cambiar en local y lo vuelves a subir al
servidor o lo modificas directamente en el servidor y una vez hecho esto tus cambios estarán disponibles al momento para
todos los usuarios que se conecten a tu servidor. En cambio en las aplicaciones
para Windows Forms hay que actualizar los archivos instalados en cada ordenador
y este proceso puede ser más costoso.
Pues bien
voy a partir de un simple formulario con 3 cajas de texto y un botón, para sumar el contenido de las cajas de texto y mostar el resultado, nada del otro mundo. Lo que voy a hacer es agregar un nuevo proyecto de instalación, que ya expliqué en un post anterior como se hacía, lo voy a configurar cambiando
algunas propiedades como el nombre del autor, el nombre del producto y que me
desinstale las versiones anteriores de la aplicación y además voy recordar como
añadir accesos directos. Pues bien una vez generado el proyecto voy a explicar cómo
distribuir la aplicación para que el cliente la instale en su ordenador. Hasta
aquí nada nuevo, lo nuevo será explicar cómo hacer cambios en la aplicación y
distribuirla para que cuando se instale en el ordenador del usuario final
desinstale la versión anterior, eso sí sin borrar archivos como bases de datos
y demás información que el usuario haya guardado y no quiera ser borrada, e instale la nueva versión
actualizada.
Los puntos más interesantes es que si en el proyecto de instalación que creas cambias la propiedad 'RemovePreviousVersion' a True, el instalador cuando detecte una versión anterior de la aplicación no la va a desinstalar automáticamente si en la propiedad 'Product Code' el código es el mismo. Te dirá que has de ir a 'Agregar y quitar programas' para desinstalarla tu manualmente y el programa no continuará. Si el 'Product Code' no es el mismo no tenemos garantias que actualize todos los ficheros de la aplicación a menos que nos descarguemos el programa Orca.msi y nosotros modifiquemos el archivo .msi añadiéndole a la table 'property' la propiedad REINSTALLMODE y el valor amus. Lo mismo también se puede hacer modificando el archivo .msi desde la consola de MSDOS y escribiendo msiexec.exe /i [nombre del archivo].msi REINSTALLMODE=amus y pulsar intro.
Otro punto interesante es el hecho que queramos que algunos archivos de la aplicación no se borren cuando se desinstale, como pueden ser bases de datos -a menos que hagamos una copia de seguridad antes-, archivos de configuración, etc. Para ello si estoy en mi proyecto de instalación, en este caso estoy en los 'Archivos de contenido' busco la propiedad Permanent y cambio el valor a True y con eso ya lo conseguimos.
Para
explicar todo esto cuelgo el siguiente vídeo donde todo quedará más claro y verás que es mucho más sencillo de lo que parece.
Bueno ya sé
que he estado sin colgar nada durante bastante tiempo básicamente por motivos
de mucho trabajo y de estudios pero he querido retomar un poco las
publicaciones en este blog para ir colgando cosas interesantes y quiero empezar
dentro de poco a explicar no sólo como crear aplicaciones de escritorio sino
también sitios web, ya sea aspx o php-mysql, que son las 2 tecnologías que más
estoy usando en los últimos meses de trabajo.