Pregunta

Me gustaría disculparme con anticipación si estoy dejando de lado cualquier detalle importante.

Estoy intentando realizar una actualización donde la versión anterior del software (y todos los componentes) se elimine antes de instalar la nueva.

Intentaré evitar aburrirte con los detalles y decir si realiza una instalación 'típica', todo va según lo planeado. Si elige realizar una instalación avanzada (especifique la instalación para todos los usuarios, instale la ubicación, etc.), entonces parece estar saltando el paso 'desinstalar versión anterior' en conjunto.

Hasta ahora, he hecho lo siguiente:

-Editó mis etiquetas de actualización para que coincidan con el consejo de otra pregunta de StackOverFlow

--verificó la propiedad 'OldversionBingUrged' se está configurando correctamente

-Verifique que los códigos / ID de actualización son los mismos, los números de versión son secuenciales (actualización de 1.0.8 a 1.0.10), ¡después de todo, la instalación 'típica' funciona correctamente!

-Golgue el consejo que se le da aquí: wix-- Siempre sobrescriba la versión anterior y siguió esto: http://wix.sourceforge.net/manual-wix3/ major_upgrade.htm

-tried Para implementar un truco llamando manualmente MSIExec para desinstalar una versión anterior por su identificación del producto (esto falló porque ya estamos instalando algo, ¿existe una mejor manera de programar esto?)

La sección Mi producto / actualización se ve así:

<Product Id="GUID1" UpgradeCode="GUID2" Version="1.0.10.0">
    <Package Compressed="yes" InstallerVersion="200"/>
    <MajorUpgrade Schedule="afterInstallInitialize" 
      DowngradeErrorMessage="Another version of [ProductName] is already installed."/>
    <Upgrade Id="GUID2">
        <UpgradeVersion Minimum="1.0.10" OnlyDetect="yes"
             Property="NEWERVERSIONDETECTED" />
        <UpgradeVersion Maximum="1.0.10" IncludeMaximum="no" 
             Property="PREVIOUSVERSIONINSTALLED" />
    </Upgrade>

Soy un novato Wix, por lo que puedo haber pasado por alto detalles importantes al describir mi problema. Si me he olvidado de incluir algo importante, por favor hágamelo saber.

Gracias de antemano por cualquier entrada que pueda proporcionar.

¿Fue útil?

Solución

Suena como si estuviera corriendo en la misma limitación que lo hice, consulte Esta pregunta .No puede cambiar el alcance de instalación ("por usuario" o "por máquina") en una actualización.

No hay una forma sencilla alrededor de esto desde Windows Installer.Solo puede hacer un EXE de bootstrapper separado que desinstala la versión anterior y luego inicia la instalación de la nueva versión.

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