Tengo dificultades para habilitar la principal funcionalidad de actualización en WiX.¿Cómo funciona la actualización principal de WiX?
Quiero que cada versión nueva del instalador sea una actualización importante (desinstalación completa, luego nueva instalación) ya que no queremos una actualización diferente y versiones de instalación limpias.
Empecé tratando de hacerlo usando las etiquetas, pero seguí recibiendo "Se ha instalado otra versión". mensaje de error cuando ejecuto el instalador.
Así que implementé la nueva etiqueta que se agregó en V3.5 para facilitar las actualizaciones. Todavía recibía el mensaje de error.
Luego leí en alguna parte que necesita cambiar el GUID de Id para cada nueva versión. Así que configuré Id = "*" para que WiX los genere.
Ahora, cuando instalo la versión más nueva, no desinstala la versión anterior y termina con dos instalaciones en la misma carpeta. Lo resolví porque ejecutar MSI (nuevo o viejo) abriría la pantalla reparar/eliminar.
Además, el programa no se sobrescribió con la nueva versión.
Aquí es el comienzo de mi guión WiX:
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="*"
Name="Foo"
Language="1033"
Codepage="1252"
Version="!(bind.FileVersion.Foo.exe)"
Manufacturer="Foo Bar Ltd."
UpgradeCode="dac2fab2-7d76-4e47-b25f-0748380dab81">
<Package
Description="Foo"
Comments="This installer database contains the logic and data required to install Foo."
InstallerVersion="300"
Languages="1033"
SummaryCodepage="1252"
Platform="x86"
Compressed="yes" />
<!-- Remove older versions -->
<!-- Important note: MSI ignores the last version digit 1.0.0.? when comparing versions, so always change at least the 3rd digit for new external releases-->
<MajorUpgrade DowngradeErrorMessage="The version currently installed is newer than the version you are attempting to install."/>