Хорошо, после всех этих комментариев, я думаю, что понимаю, почему это такая проблема. К сожалению, я не думаю, что есть очень простой способ сделать так, как вы хотите.
Я думаю, что ваш метод будет единственным реальным способом миграции из этой установки установки на основе isntallscript. Должна быть запись реестра в HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Uninstall, которая относится к вашему продукту. Здесь может быть команда удаления, которую вы могли бы прочитать в переменной из вашего пакета burn и передать это значение как свойство вашего msi.
В MSI вы можете иметь 3 пользовательских действия, специально связанных с обновлением с установки продукта установки. Все эти задачи должны быть отложенными пользовательскими действиями, чтобы они могли работать с повышением уровня администратора. Первая задача должна скопировать все настройки конфигурации в безопасное место (как правило,% temp% \ ProductConfig \ будет в порядке). Вторая часть после сохранения конфигурации запустила бы эту команду удаления, чтобы удалить продукт, вам может потребоваться добавить/q или что-то, чтобы заставить его работать пассивно/тихо. Затем в конце установки вы можете скопировать файлы конфигурации из temp.
Каждое из пользовательских действий должно выполняться условно независимо от того, установлено ли какое-либо свойство, которое вы передали. Я бы заплатил копию cofig после InstallInitialize, удаление после копии и восстановления перед InstallFinalize только для того, чтобы все было скопировано за после программа установки помещает все файлы в систему.
В идеале вы хотели бы, чтобы все было обновлено без необходимости взаимодействия с пользователем, за минимальным способом, нажав кнопку Далее и установить.
Я имел дело только с InstallShield достаточно знать, что я на самом деле не нравится, так что если кто-то знает больше, и знает лучшего способа сделать это они с надеждой Chime в.
Удалить проект InstallShield и клянусь никогда больше не говорить об этом. Вы уверены, что нет UpgradeCode? Можете ли вы открыть msi, который вы устанавливаете с помощью Orca, и посмотреть его таблицу свойств и посмотреть, есть ли список UpgradeCode? Вы также должны иметь возможность реализовать «Сохранить и восстановить конфигурации» в качестве пользовательских действий в вашей установке wix. –
Я бы с удовольствием, но, к сожалению, это не вариант. Я считал ответ в этой [link] (https://community.flexerasoftware.com/showthread.php?186641-How-to-get-ProductVersion-UpgradeCode-in-in-Installscript-Project), в котором говорится, что нет UpgradeCode. Я не могу, потому что я генерирую только EXE, несовместимый с Orca – Letho
Вы должны иметь возможность использовать installer.exe/b "C: \ Path \ to \ extract", а затем проверить, что dir для msi. он также может быть/extract_all: «C: \ Path \ To \ extract» –