Установка Wix 'Advanced' не удаляет предыдущую версию
-
13-12-2019 - |
Вопрос
Я хотел бы заранее извиниться, если я оставив какие-либо важные детали.
Я пытаюсь выполнить обновление, где предыдущая версия программного обеспечения (и все компоненты) должна быть удалена перед установкой нового.
Я постараюсь избежать скучного вами с деталями и сказать, если вы делаете «типичную» установку, все идет как запланировано. Если вы решите выполнить продвинутую установку (укажите установку для всех пользователей, установите местоположение и т. Д.), То, кажется, в целом пропускает шаг «Удалить предыдущую версию.
До сих пор я сделал следующее:
- Распределение моих тегов обновления, чтобы соответствовать советам другого вопроса для стопки в штате
- Ошифицировали свойство «OLLVERSSIONSIGNIGNAPGRADED» правильно устанавливается
- Переместите, что коды / идентификаторы обновления являются одинаковыми, номера версий являются последовательными (модернизация от 1,0,8 до 1,0.10) - в конце концов, «типичная» установка работает правильно!
- Отложите совет, приведенный здесь: wix-s-ververy-version - перезаписать предыдущую версию И последовал за этим: http://wix.sourceforge.net/manual-wix3/ major_uppgrade.htm
- реализовать взлом, вручную вызов Msiexec, чтобы удалить предыдущую версию по ID продукции (это не удалось, потому что мы уже устанавливаем что-то - есть ли лучший способ запланировать это?)
Мой секция товара / обновления выглядит так:
<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>
.
Я Wix Newbie, поэтому я мог пропустить важные детали, описывая мою проблему. Если я пренебрег, чтобы включить что-то важное, пожалуйста, дайте мне знать.
Спасибо заранее для любого ввода, который вы можете предоставить.
Решение
Это звучит так, как будто вы работаете в одном и том же ограничениях, как я, см. Этот вопрос .Вы не можете изменить область установки («на пользователя» или «на машину») в модернизации.
Нет простого способа вокруг внутри Windows Installer.Вы можете сделать только отдельный загрузчик EXE, который удаляет предыдущую версию, а затем запускает установку новой версии.