2012-06-14 10 views
7

Estamos tratando de hacer una actualización importante. Mientras estaba investigando encontré 2 enfoques.Majorupgrade o ID de actualización que se prefiere para la actualización Principal?

Uno está utilizando ID de actualización y otro enfoque fue la etiqueta Majorupgrade.

Parece que Majorupgrade es fácil de hacer parece. Pero el cronograma no contiene ninguna acción de inicialización deinicialización.

No estoy seguro de cuál debería estar usando.

¿Cuál es preferido [y recomendado] en su mayoría?

+1

El programa tiene la opción "afterInstallValidate" que está antes de InstallInitialize. – Adkins

Respuesta

17

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.

Cuestiones relacionadas