Корекция на инсталации на множество екземпляри с 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 файл в cab.

Опитах също метода .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 за генериране на WIX XML изходен файл, който след това може да бъде изчистен, може драстично да улесни прехода. Все пак изисква основни работни познания за Wix. - person Stein Åsmul; 04.05.2014
comment
dark.exe е един от инструментите на Wix. - person Stein Åsmul; 04.05.2014