2014-12-24 4 views
0

У меня есть собственный установщик на основе технологии WiX, который устанавливает несколько .vsix-пакетов в Visual Studio.Установщик WiX - как я могу удалить установленное приложение и переустановить его при том же запуске

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

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

Как реализовать это в WiX?

ответ

0

Я подозреваю, что ваш пользовательский установщик можно сделать немного умнее. Существует множество API-интерфейсов (таких как MsiQueryProductState), которые расскажут вам, установлен ли этот точный ProductCode, и как получить версию (MsiGetProductInfo). Я предполагаю, что ваш пользовательский установщик просто отключает все установки MSI, не проверяя, если они уже установлены, поэтому приглашения «Удалить».

Ваш общий план должен состоять в том, чтобы некоторые данные были доступны вашему пользовательскому установщику, который он может использовать, чтобы узнать, что уже установлено и какие версии, а затем сравнить их с тем, что вы собираетесь установить. Используйте эти API. Если продукт уже установлен, пропустите установку. Если у вас более новая версия (которую вы создали с помощью элемента WiX MajorUpgrade), просто установите ее, потому что она заменит существующий старый.

В WiX ничего не могу придумать, чтобы автоматически переустановить продукт, который ваш пользовательский установщик вызвал удаление, переустановив его и предложив пользователю удалить его, если это то, что происходит.

 Смежные вопросы

  • Нет связанных вопросов^_^