Wix 'Advanced' Установка не удаляет предыдущую версию - PullRequest
3 голосов
/ 14 марта 2012

Я хотел бы заранее извиниться, если опущу какие-либо важные детали.

Я пытаюсь выполнить обновление, при котором предыдущая версия программного обеспечения (и все компоненты) должна быть удалена перед установкой новой.

Я постараюсь не утомлять васдетали и скажите, если вы делаете «типичную» установку, все идет по плану.Если вы решите выполнить расширенную установку (указать установку для всех пользователей, место установки и т. Д.), То, похоже, будет пропущен этап «Удалить предыдущую версию».

Пока что я сделал следующее:

-Отредактировал мои теги UpgradeVersion в соответствии с рекомендациями другого вопроса stackoverflow

-Проверял, что свойство 'OLDVERSIONBEINGUPGRADED' правильно задано

-Проверьте эти коды / идентификаторы обновленияодинаковые, номера версий последовательные (обновление с 1.0.8 до 1.0.10) - в конце концов, «типичная» установка работает правильно!

-Следуя приведенным здесь советам: WiX--всегда перезаписывайте предыдущую версию и следуйте этому: http://wix.sourceforge.net/manual-wix3/major_upgrade.htm

-Попробовал осуществить взлом, вручную вызвав msiexec для удаления предыдущей версии по ее идентификатору продукта (это не удалось, потому что мы уже что-то устанавливаем- есть ли лучший способ запланировать это?)

Мой раздел Product / Upgrade выглядит так:

<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, поэтому, возможно, я упустил важные детали при описании своей проблемы.Если я не упомянул что-то важное, пожалуйста, дайте мне знать.

Заранее благодарим за любой вклад, который вы можете предоставить.

1 Ответ

2 голосов
/ 14 марта 2012

Звучит так, как будто вы столкнулись с тем же ограничением, что и я, см. этот вопрос . Вы не можете изменить область установки («на пользователя» или «на машину») при обновлении.

Нет простого способа обойти это из установщика Windows. Вы можете создать только отдельный загрузочный exe-файл, который удалит предыдущую версию, а затем начнет установку новой версии.

...