Pregunta

He creado un MSI que me gustaría implementar y actualizar con frecuencia.Desafortunadamente, cuando instala el MSI y luego intenta instalar una versión más reciente del mismo MSI, falla con un mensaje como "Ya hay otra versión de este producto instalada".La instalación de esta versión no puede continuar..." aparece.El MSI se creó con un proyecto de instalación de Visual Studio 2008.Intenté configurar la propiedad "Eliminar versiones anteriores" en verdadero y falso, en un esfuerzo por hacer que las versiones más nuevas sobrescriban la instalación anterior, pero nada funcionó.En una empresa anterior, sé que no tuve este problema con los instaladores creados por Wise and Advanced Installer.¿Hay alguna configuración que me falta?¿O mi funcionalidad deseada no es compatible con el proyecto de instalación de VS 2008?

¿Fue útil?

Solución

He creado numerosos MSI con VS 2005 Pro que hacen esto correctamente.

¿Está seguro de que la propiedad 'Versión' del proyecto de implementación ¿Se ha incrementado?Esta propiedad es independiente de la versión de los ensamblados en la aplicación, y este es el mensaje de error que verá si la propiedad Versión del MSI es la misma que la del que está intentando sobrescribir.

Otros consejos

Incrementa el número de versión en tu proyecto.

En VS, seleccione el nodo para su aplicación de configuración y presione F4 para ver las propiedades.Busque el campo de versión e increméntelo.

Debe cambiar el Código de producto entre cada versión; si no lo hace, obtendrá el comportamiento que está viendo.El ProductCode se ve en las propiedades del proyecto.Revisar la Ayuda en línea de MSDN para ProductCode para entender mejor.

Esto es un poco más complejo:

Para eliminar automáticamente versiones anteriores de la aplicación instalada en el proyecto de instalación, es necesario:

  1. Incrementar el Versión propiedad (por ej.de 1.0.0 a 1.0.1...también cambia en la 3ª posición funciona)
    • Versión es propiedad del proyecto de instalación que identifica qué versión de la aplicación está instalada
  2. Cambiar el Código de producto propiedad, para que el instalador sepa que no es el mismo instalador ejecutado dos veces
    • Código de producto es propiedad del proyecto de instalación, Visual Studio ofrece cambiarlo automáticamente, cuando Versión la propiedad se cambia
  3. Mantenga el valor de la propiedad "UpgradeCode".
    • Código de actualización También es propiedad del proyecto instalador.
    • debe permanecer igual en toda la "línea de actualización", para que el instalador sepa qué actualizar
  4. Si también desea eliminar versiones antiguas de aplicaciones de la lista de software del Panel de control, configure Eliminar versiones anteriores a verdad

Tuve el mismo problema al pasar de XP a Win7.Para solucionarlo tuve que configurar DetectNewerInstalledVersion en False.Además, como mencionaron otros, es necesario incluir la versión del proyecto de instalación.

Buena suerte.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top