El elemento MajorUpgrade se introdujo en wix 3.5 para simplificar lo que normalmente haría con el elemento Upgrade. Así que en lugar de algo como esto:
<!– Major upgrade –>
<Upgrade Id="$(var.UpgradeCode)">
<UpgradeVersion Minimum="$(var.ProductVersion)" OnlyDetect="yes" Property="NEWERVERSIONDETECTED" />
<UpgradeVersion Minimum="1.0.0" IncludeMinimum="yes" Maximum="$(var.ProductVersion)" IncludeMaximum="no" Property="OLDERVERSIONBEINGUPGRADED" />
</Upgrade>
<InstallExecuteSequence>
<RemoveExistingProducts After="InstallValidate" />
</InstallExecuteSequence>
<Condition Message="Can't downgrade">
NOT NEWERVERSIONDETECTED
</Condition>
puede simplemente hacer esto:
<MajorUpgrade DowngradeErrorMessage="Can’t downgrade." />
No sólo es la vieja manera más detallada, sino que también requiere que repita la versión del código de actualización y producto que se se especifican en el elemento Product. Entonces, el ejemplo anterior tiene que hacer uso de las variables wix para mantenerlos sincronizados. Si te equivocas, la actualización no funcionará correctamente.
El nuevo elemento MajorUpgrade
no tiene ninguna de esas complicaciones, por lo que te recomiendo que lo uses. Consulte también este blog post by Bob Arnson introducing MajorUpgrade
y el topic in the wix documentation sobre el tema.
El programa tiene la opción "afterInstallValidate" que está antes de InstallInitialize. – Adkins