Возможность преобразования из проекта InstallScript в базовый MSI
У меня есть чистый проект InstallScript, который оказывается проблематичным из-за этой проблемы. Это было временно решено добавлением некоторого InstallScript, который стирает определенный каталог перед установкой новых файлов, что не идеально. Однако эта серия сообщений на форуме указывает на то, что проект InstallScript MSI или Basic MSI значительно упростит удаление динамически связанных файлов при обновлении.
Просматривая форумы Flexara, я нахожу множество публикаций, противоречащих типу проекта InstallScript MSI, поэтому я смотрю на Basic MSI. Очевидно, у Flexara есть продукт под названием Repackager, который может конвертировать проекты InstallScript в базовый MSI. Однако он поставляется только с IS Premier или Admin Studio, что означает, что нам придется потратить немного денег. Прежде чем я пойду по этому пути, мне нужны некоторые признаки того, что это может сработать.
- Может ли какая-либо функциональность быть потеряна при конвертации из InstallScript в Basic MSI с помощью инструмента Repackager? В наших скриптах есть немного логики, в том числе и такие, которые передают информацию через несколько этапов установки. Мы также используем несколько ServiceShield NT Service Objects, устаревшие объекты, которые, как мне кажется, мне пришлось устанавливать отдельно от IS2010. Существуют ли какие-либо аспекты проектов InstallScript, о которых известно, что Repackager не обрабатывает их?
- Если Repackager не собирается магически конвертировать проект, есть ли где-нибудь руководство, которым я могу следовать, чтобы выполнить конвертацию вручную? Я обнаружил, что документации и форумах InstallShield очень не хватает.
- Есть ли какой-нибудь способ, в результате которого установочный пакет Basic MSI сможет выполнить установку обновлений в системах, где установлена старая (чисто InstallScript) версия? Это действительно будет бонусом. На данный момент я ожидаю, что мы просто будем вынуждены сделать полную деинсталляцию / переустановку.
2 ответа
Я бы не рекомендовал решение для переупаковки по тем же причинам, о которых говорил Кристофер.
Хорошим мостом между вашим проектом InstallScript и новым проектом Basic MSI было бы создание нового проекта Basic MSI, который использует настраиваемые действия InstallScript. При таком подходе ядро MSI будет управлять непатентованными аспектами вашей установки, а унаследованный код InstallScript может быть повторно использован для управления собственными аспектами вашей установки.
Это дает вам лучшее из обоих миров - надежный базовый пакет MSI, который вы полностью контролируете (поскольку он не был автоматически создан переупаковщиком) ПЛЮС экономит время, поскольку вам не нужно переопределять функции InstallScript с нуля.
В лучшем случае переупаковщик может захватить только один экземпляр бизнес-правил установки. Вы не можете просто "конвертировать" вашу установку, а просто перепроектировать ее. В идеале вам нужно, чтобы эксперт MSI проверил ваш проект InstallScript и определил части, которые можно устранить путем рефакторинга в соответствии с лучшими практиками MSI, а затем переписал оставшиеся части, чтобы они соответствовали таблицам последовательности MSI.
Если ваша старая деинсталляция ведет себя хорошо, вы можете написать специальное действие, которое удаляет ее. Это проще всего, если ваш новый продукт переходит в новый каталог установки, поскольку вы устраняете потенциальные проблемы с стоимостью файлов. Если это невозможно и / или ваша старая установка не имеет надлежащим образом удаляемой деинсталляции, тогда это станет более сложным.
Это также может быть более сложным, если у вас есть данные конфигурации, которые вы хотите сохранить из старого контекста установки в новый контекст.
Я делал многие из них в течение многих лет, и хотя это может быть очень сложным, но это может быть и полезным, так как вы можете убрать много грязи по пути.