0

Мы используем InstallShield InstallScript проектов для создания наших инсталляторов и ищем хороший способ перехода на WiX Toolset. Насколько я знаю, нет UpgradeCode (как для MSI) для обновления от проекта Installshield InstallScript до проекта WiX.Каков наилучший способ перехода с InstallScript на WiX Toolset?

Единственное решение, которое я нашел до сих пор является:

  1. вручную сохранить конфигура
  2. удалить установку на InstallScript полностью
  3. установить установку WiX
  4. применять сохраненные конфигурации

Есть ли лучший способ?

+0

Удалить проект InstallShield и клянусь никогда больше не говорить об этом. Вы уверены, что нет UpgradeCode? Можете ли вы открыть msi, который вы устанавливаете с помощью Orca, и посмотреть его таблицу свойств и посмотреть, есть ли список UpgradeCode? Вы также должны иметь возможность реализовать «Сохранить и восстановить конфигурации» в качестве пользовательских действий в вашей установке wix. –

+0

Я бы с удовольствием, но, к сожалению, это не вариант. Я считал ответ в этой [link] (https://community.flexerasoftware.com/showthread.php?186641-How-to-get-ProductVersion-UpgradeCode-in-in-Installscript-Project), в котором говорится, что нет UpgradeCode. Я не могу, потому что я генерирую только EXE, несовместимый с Orca – Letho

+0

Вы должны иметь возможность использовать installer.exe/b "C: \ Path \ to \ extract", а затем проверить, что dir для msi. он также может быть/extract_all: «C: \ Path \ To \ extract» –

ответ

0

Хорошо, после всех этих комментариев, я думаю, что понимаю, почему это такая проблема. К сожалению, я не думаю, что есть очень простой способ сделать так, как вы хотите.

Я думаю, что ваш метод будет единственным реальным способом миграции из этой установки установки на основе isntallscript. Должна быть запись реестра в HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Uninstall, которая относится к вашему продукту. Здесь может быть команда удаления, которую вы могли бы прочитать в переменной из вашего пакета burn и передать это значение как свойство вашего msi.

В MSI вы можете иметь 3 пользовательских действия, специально связанных с обновлением с установки продукта установки. Все эти задачи должны быть отложенными пользовательскими действиями, чтобы они могли работать с повышением уровня администратора. Первая задача должна скопировать все настройки конфигурации в безопасное место (как правило,% temp% \ ProductConfig \ будет в порядке). Вторая часть после сохранения конфигурации запустила бы эту команду удаления, чтобы удалить продукт, вам может потребоваться добавить/q или что-то, чтобы заставить его работать пассивно/тихо. Затем в конце установки вы можете скопировать файлы конфигурации из temp.

Каждое из пользовательских действий должно выполняться условно независимо от того, установлено ли какое-либо свойство, которое вы передали. Я бы заплатил копию cofig после InstallInitialize, удаление после копии и восстановления перед InstallFinalize только для того, чтобы все было скопировано за после программа установки помещает все файлы в систему.

В идеале вы хотели бы, чтобы все было обновлено без необходимости взаимодействия с пользователем, за минимальным способом, нажав кнопку Далее и установить.

Я имел дело только с InstallShield достаточно знать, что я на самом деле не нравится, так что если кто-то знает больше, и знает лучшего способа сделать это они с надеждой Chime в.

+0

Большое спасибо за подробное описание. Попробую. – Letho

+0

Для других, которые наткнулись на ту же проблему, есть возможность использовать _setup.exe_ в _C: \ Program Files \ InstallShield Информация об установке \ {** ProductCodeFromIsmProject **} _ для удаления продукта. Со скрытым отображением будет отображаться только одно всплывающее окно: 'setup.exe/removeonly/hide_splash/hide_usd/hide_progress' Это всплывающее окно может быть отключено с помощью бесшумного режима с чем-то вроде этого:' setup.exe/removeonly/hide_splash/hide_usd/hide_progress/s/f1 "SilentUninstall.iss" 'Я думаю, что есть лучший способ, но я еще не нашел его. – Letho

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