es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para hacer que la bandera /u funcione para el elemento MajorUpgrade en Wix, debes agregar la acción RemoveExistingProducts en la secuencia InstallExecute. Esta acción desinstalará la versión anterior antes de instalar la nueva.

    Para implementar esto, utiliza el siguiente código:

    <majorupgrade downgradeerrormessage="Ya hay instalada una versión más reciente de [ProductName]."></majorupgrade>
    <installexecutesequence>
        <removeexistingproducts after="InstallInitialize"></removeexistingproducts>
    </installexecutesequence>
    

    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 y ProductId sean únicos para cada lanzamiento para evitar conflictos entre las diferentes versiones.

Comments are closed.