Majorupgrade или Upgrade ID, который является предпочтительным для Major upgrade?

Мы пытаемся сделать Major upgrade. Пока я расследовал, я нашел 2 подхода.

Один использует Upgrade Id, а другой - тег Majorupgrade.

Кажется, Majorupgrade легко сделать, кажется. Но расписание не содержит никаких действий перед установкой инициализации.

Я не уверен, что следует использовать.

Какой из них предпочтительнее [и рекомендуется] в основном?

1 ответ

Решение

Элемент MajorUpgrade был введен в wix 3.5, чтобы упростить то, что вы обычно делаете с элементом Upgrade. Так что вместо чего-то вроде этого:

<!– 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>

Вы можете просто сделать это:

<MajorUpgrade DowngradeErrorMessage="Can’t downgrade." />

Старый способ не только более многословен, но и требует повторения кода обновления и версии продукта, указанных в элементе Product. Поэтому в приведенном выше примере необходимо использовать переменные wix для их синхронизации. Если вы ошиблись, обновление не будет работать правильно.

Новый MajorUpgrade Элемент не имеет ни одного из этих осложнений, поэтому я рекомендую вам использовать его. Смотрите также эту запись в блоге Боба Арнсона, представляющегоMajorUpgrade и тема в документации WIX по этому вопросу.

Другие вопросы по тегам