Исправление установок нескольких экземпляров с помощью 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 я попытался добавить новый код продукта из преобразований в «Список целевых кодов продуктов» через вкладку Patch Design. Это приведет к ошибке создания патча с ошибкой:

"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?


person kaspur    schedule 27.02.2012    source источник
comment
Трудно догадаться, что не так с вашим патчем, не видя кода. Если вы поделитесь отрывком, это может быть проще. Также было бы здорово, если бы вы могли сузить проблему до некоторого короткого образца вместо части реального решения.   -  person Yan Sklyarenko    schedule 29.02.2012


Ответы (1)


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

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

person kaspur    schedule 02.03.2012
comment
Вы можете опубликовать свое решение WiX? Хотя бы самые важные детали? Здесь они могут быть интересны и другим пользователям ... Заранее спасибо! - person Mayoares; 05.03.2012
comment
Я сослался на следующую страницу, когда воссоздал свой проект в WiX. Думаю, это будет для вас более полезным, чем публикация моего конкретного проекта. codeproject.com/Articles/115036/ - person kaspur; 06.03.2012
comment
Люди, имеющие опыт работы с MSI, могут обнаружить, что декомпиляция существующего MSI с использованием dark.exe для создания исходного XML-файла WIX, который затем можно очистить, может значительно облегчить переход. Однако для этого требуются базовые знания Wix. - person Stein Åsmul; 04.05.2014
comment
dark.exe - один из инструментов Wix. - person Stein Åsmul; 04.05.2014