Каков наилучший способ перехода с InstallScript на WiX Toolset?
Мы используем проекты InstallShield InstallScript для создания наших установщиков и ищем хороший способ перехода на WiX Toolset. Насколько я знаю, не существует UpgradeCode (как для MSI) для обновления из проекта Installshield InstallScript в проект WiX.
Единственное решение, которое я нашел до сих пор:
- сохранить настройки вручную
- полностью удалить установку InstallScript
- установить установку WiX
- применить сохраненные конфигурации
Есть ли способ лучше?
1 ответ
Хорошо, после всех этих комментариев, я думаю, я понимаю, почему это такая проблема. К сожалению, я не думаю, что есть очень простой способ сделать то, что вы хотите сделать.
Я думаю, что ваш метод будет единственным реальным способом перехода с этой установки на основе isntallscript. В HKLM/ ПРОГРАММНОМ ОБЕСПЕЧЕНИИ /Microsoft/Windows/CurrentVersion/Uninstall должна быть запись реестра, относящаяся к вашему продукту. Здесь может быть команда удаления, которую вы можете прочитать в переменную из вашего пакета записи и передать это значение в качестве свойства в msi.
В вашем MSI вы можете выполнить 3 пользовательских действия, связанных с обновлением с помощью установки продукта installshield. Все эти задачи должны быть отложены в соответствии с настраиваемыми действиями, чтобы они могли выполняться с правами администратора. Первая задача должна скопировать все параметры конфигурации в безопасное место (обычно это будет%temp%\ProductConfig\). Во второй части после сохранения конфигурации будет запущена команда удаления, чтобы удалить продукт, вам может потребоваться добавить /q или что-то еще, чтобы заставить его работать пассивно / тихо. Затем в конце установки вы можете скопировать обратно файлы конфигурации из temp.
Каждое из настраиваемых действий должно выполняться условно, независимо от того, установлено или нет свойство, в которое вы передали, Я бы запланировал копирование cofig после InstallInitialize, удаление после копирования и восстановление до InstallFinalize, чтобы убедиться, что все скопировано после того, как установщик поместит все файлы в систему.
В идеале вы хотели бы получить все для обновления без взаимодействия с пользователем, за исключением минимального нажатия кнопки "Далее" и "Установить".
Я имел дело только с InstallShield достаточно, чтобы знать, что он мне действительно не нравится, поэтому, если кто-то еще знает больше и знает лучший способ сделать это, они, надеюсь, присоединятся.