usar una tipos sirve qué podemos para nos existen etiquetas etiqueta cuando crear creamos comando deployment windows-installer deployment-project

deployment - tipos - Instalación de una nueva versión de un proyecto de implementación sobre la versión antigua



tipos de etiquetas existen en git (4)

Tengo un proyecto de implementación que no me permitirá instalarlo en una versión anterior. El archivo msi dice que primero debe desinstalar el programa desde Agregar o quitar programas. Esta no es una buena experiencia de usuario. ¿Cómo puedo hacerlo para que el instalador simplemente elimine el software primero y luego instale la nueva versión?


Establecer la propiedad del proyecto de instalación RemovePreviousVersions True

Pero tienes que usar el mismo código de actualización en ambas aplicaciones de configuración


Esto es complicado, tienes que hacer los siguientes pasos,

  1. Establecer eliminar la instalación anterior como verdadera
  2. Establecer Detectar nueva versión como True
  3. La versión de su programa C # debe aumentar con cada implementación
  4. Debe cambiar la versión de su instalador a una versión superior y le pedirá que cambie el código del producto, seleccione SÍ.
  5. No cambies tu código de actualización, deja que sea igual.

Si no realiza el 3er paso correctamente, el instalador seguirá instalando y conservando el archivo anterior, la versión de cada archivo de cada archivo debe ser nueva si ha cambiado su contenido.


Probé algunos escenarios, tal vez esto ayude a alguien a ahorrar tiempo.

Si la Versión de la Asamblea cambia Y la versión del instalador del proyecto cambia (con ProductCode Guid también cambia) -> La aplicación se instala por encima de una existente -> las versiones dlls y exe se actualizan -> La ruta IF instalada es diferente, se eliminan los archivos de proyecto instalados inicialmente. Desde donde se instalaron. (y archivos hechos desde que quedan)

Si la Versión de la Asamblea cambia Y la versión del instalador del proyecto cambia (sin cambiar Product Guid Guid) -> Se le pide al usuario que elimine la aplicación manualmente -> si siguen adelante y se eliminan primero del panel de control, la aplicación se puede instalar y las dlls y exes se actualizan a la nueva versión

Si SOLO la versión de ensamblaje cambia, o solo la versión del instalador del proyecto cambia (sin cambiar ProductCode Guid) -> Se le pide al usuario que elimine la aplicación manualmente -> si se adelanta y remueve primero del panel de control, la aplicación se puede instalar y las dlls y exes se actualizan a la nueva versión

Si SOLO la versión del instalador del proyecto cambia (con ProductCode Guid también se modifica) -> MSI pasa por el proceso de instalación, pero dlls y exe no cambian la versión, se rigen por la versión de ensamblaje y se reemplazan con archivos de la misma versión de compilación del ensamblaje -> SI La ruta de acceso instalada es diferente, los archivos de proyecto instalados inicialmente se eliminan de donde se instalaron. (Cualquier archivo hecho desde que permanezca)

Si la versión del instalador del proyecto cambia (con la modificación de ProductCode Guid también) y la versión del conjunto es inferior a la versión instalada -> Comenzará la instalación, se informará al usuario final de que la instalación falla como versión anterior.


Puede hacer esto algunas veces después de instalar la nueva versión, el producto anterior seguirá siendo el mismo.

Debe cambiar el número de secuencia de RemoveExistingProducts, debe programar entre la acción Instalar Validar y InstalarInicializar Puedes hacerlo por ORCA

Para Ex InstallValidate = 1400 InstallInitialize = 1500

A continuación, quiteExistingProducts = 1450