Ejecutar la actualización en cmd no está funcionando en WixSharp.
Implementé el elemento MajorUpgrade
,
cuando quiero ejecutar la actualización mediante la línea de comandos,
tengo que ejecutar el msi de la versión superior con /i
. (por ejemplo, msiexec /i <path_to_higher_msi>
)
/u
no hace nada. (por ejemplo, no muestra ningún error / mensaje en el visor de eventos y no instala / actualiza)
¿Cómo puedo hacer que funcione?
Por ejemplo:
Construyo el proyecto con la versión 1.2.3
y lo instalo,
luego reconstruyo la misma solución pero con la versión superior 2.4.5
y ejecuto msiexec /u
.
Puedo ver en el Panel de control que la versión ha sido actualizada.
El problema comienza cuando produzco dos versiones del canal de entrega.
Tengo el mismo upgradeCode
en ambos y un productId
único.
Gracias.
davy.ai
Para hacer que la bandera
/u
funcione para el elementoMajorUpgrade
en Wix, debes agregar la acciónRemoveExistingProducts
en la secuenciaInstallExecute
. Esta acción desinstalará la versión anterior antes de instalar la nueva.Para implementar esto, utiliza el siguiente código:
Asegúrate de agregar este código a tu archivo de proyecto de Wix, reconstruir la solución y crear un nuevo archivo MSI. Cuando ejecute la versión actualizada con
msiexec /u
, eliminará la versión anterior e instalará la nueva.Además, revisa que los valores de
UpgradeCode
yProductId
sean únicos para cada lanzamiento para evitar conflictos entre las diferentes versiones.