Установка нескольких экземпляров с помощью InstallShield или WiX

У меня есть проект, встроенный в InstallShield 12. Это веб-приложение, которое нужно устанавливать несколько раз, и эти установки необходимо исправлять.

Я могу создавать преобразования и исправления просто отлично как в WiX, так и InstallShield.
Когда я пытаюсь исправить исправленную установку из InstallShield, я получаю сообщение об ошибке:

"The upgrade patch cannot be installed by the Windows Installer service because the program to be upgraded may be missing, or the upgrade patch may update a different version of the program.  Verify that the program to be upgraded exists on your computer and that you have the correct upgrade patch."

В InstallShield я попытался добавить новый код продукта из преобразований в "Список кодов целевого продукта" на вкладке "Дизайн патчей". Это приведет к ошибке при создании патча с ошибкой:

"ERROR: At least one of the GUIDs '{ORIGINAL-GUID},{TRANSFORM-GUID}' defined in the ListOfTargetProductCodes property in the Properties table of the .pcp file is invalid."

В WiX (3.5) я преобразовал свой проект из InstallShield в WiX, используя dark.exe. Я получил достаточно далеко, чтобы я мог установить патч для преобразования, но я получаю предупреждение:

"Patch.wxs(11) : warning PYRO1079 : The cabinet 'Data1.cab' does not contain any files."

Это проблема, потому что я пытаюсь запустить SQL-скрипт в патче, но патч не вставляет мой sql-файл в кабину.

Я также попробовал метод.pcp (до WiX 3.0) через WiX, и получил только то, что получил в InstallShield.

До сих пор я в основном ссылался на эту страницу для своих ответов: http://ysdevlog.blogspot.com/2011/08/revisited-multiple-instance.html

TL; DR: как сгенерировать патч для установки нескольких экземпляров, используя (предпочтительно) InstallShield или в WiX?

1 ответ

Решение

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

Обидно, что я не смог понять, как заставить его работать через InstallShield.

Другие вопросы по тегам