Возможно ли/разумно поместить установщик Inno Setup в MSI для упрощения распространения через AD?

StackOverflow https://stackoverflow.com/questions/71203

  •  09-06-2019
  •  | 
  •  

Вопрос

Наш установщик написан с помощью Inno Setup, и мы им вполне довольны.Тем не менее, некоторые клиенты продолжают просить установщик MSI, который им было бы легче распространять через Active Directory.Мы уже приложили все усилия, чтобы программа установки действительно хорошо справлялась с автоматической и автоматической установкой, расширив возможности Inno Setup. /LOADINF-механизм со своими опциями.

Чтобы удовлетворить запросы клиентов, запрашивающих MSI, я подумывал о том, чтобы просто поместить наш обычный установщик в MSI, возможно, созданный с помощью WIX.Вопрос в том:Могу ли я таким образом сохранить широкие возможности настройки, которые предлагает наш текущий установщик?Как мне раскрыть параметры установщика Inno Setup через внешний MSI в сценарии автоматической/массовой установки?

Обратите внимание, что я еще не дошел до того, чтобы самому углубиться в создание MSI и WIX.Сейчас меня интересует только то, думают ли люди, которые знают, о чем говорят, что это будет осуществимый/разумный подход для вложения нашей энергии в первую очередь...

Редактировать:] Изначально я думал, что могу сделать с подходом извлечения и выполнения температуры, т.е.MSI будет просто служить средством доставки установщика Inno на целевой компьютер и его выполнения там в /VERYSILENT-режим.Но я предполагаю, что клиенты, которые запрашивают MSI, также хотят иметь возможность удалить или даже изменить установку из центрального места, и я думаю, что в этом сценарии это будет невозможно, не так ли?

P.S.:У нас также есть старая копия WISE для MSI, но именно этот опыт стал причиной, по которой мы с самого начала начали использовать Inno...

Это было полезно?

Решение

Нет, невозможно сделать это, сохранив при этом функциональность, которую «неявно» просят ваши клиенты.Единственная «обертка» в MSI, которую вы можете сделать, — это извлечь его при установке и запустить установщик InnoSetup из временного местоположения, куда вы распаковали.MSI — это принципиально иной способ работы:InnoSetup (а также NSIS и большинство других установщиков) используют подход, ориентированный на код:вы «программируете» «шаги» для установки ваших данных.MSI представляет собой базу данных и использует подход, ориентированный на данные:вы указываете, какие файлы должны быть установлены, а «среда выполнения» MSI делает все остальное.Это дает вам возможность управлять версиями и точно контролировать, что и где происходит.

Короче говоря, чтобы дать вашим клиентам то, что они хотят (т. е. простоту развертывания, которую MSI обеспечивает с AD), вам понадобятся «правильные» MSI.Удачи в этом, ИМХО, это серьезная боль.Но это даст хорошие результаты, если вы освоите MSI и WiX.

Другие советы

Я сам сталкивался с этой проблемой много раз.Поэтому я создал стандартный способ решения этой проблемы, в результате чего появился мастер, который проведет вас через все этапы.Инструмент будет поддерживать следующее:

  1. Оберните exe в MSI.
  2. Поддержка удаления.
  3. Показывать только одну программу в разделе «Установка и удаление программ».
  4. Позволяет передавать аргументы командной строки, такие как /SILENT, во встроенную программу установки при запуске пакета MSI с помощью MSIEXEC.EXE.

Вы можете получить его по адресу http://www.exemsi.com (базовая версия бесплатна)

Используйте мою контактную форму и дайте мне знать, что вы думаете :-)

В ответ на ваше редактирование:да, то, что вы описываете, не позволит выполнять обновления (кроме удаления/переустановки) и удаленную настройку, поскольку база данных MSI ничего не будет знать о содержимом вашего установщика.

Однако многие установочные пакеты начали «поддержку» MSI следующим образом:Например, InstallShield.Это основная причина, по которой я их выбросил, потому что созданные таким образом установщики бесполезны для целей MSI.Я не знаю, лучше ли последние версии InstallShield, последний раз я проверял это 5 лет назад.

Довольно легко создать комплект-оболочку, которая автоматически устанавливает INNOSETUPper от MSI.Для базового функционала (установка/удаление) этого достаточно.Большинство установщиков в любом случае не осуществляют ремонт.

  1. создайте сценарий Silent.inf для установки INNO (необязательно)

  2. создайте install.bat, который вызывает

    myinnosetup.exe /silent /NOCANCEL /norestart /Components="xxx"

    вы можете использовать /verysilent
    вы можете загрузить настройки из Silent.inf с помощью /LOADINF="silent.inf"

  3. создайте установочный файл MSI, который вызывает install.bat (с параметрами, если необходимо)

  4. доставьте все 4 файла вашему клиенту, и он сможет развернуть ваш установщик Inno с помощью SMS или ActiveDirectory, и все будут довольны :)

Я бы сказал, что с помощью Inno Setup, завернутого в MSI, можно сделать все, что захотите, но это далеко не тривиально, и использование WiX может усложнить эту конкретную задачу.Короче говоря, я бы не рекомендовал его.

Но если тебе действительно хочется...

Файлы MSI представляют собой просто файлы базы данных с дополнительными инструкциями сценариев и часто включают в себя CAB-файл, содержащий все, что вы действительно хотите установить.

Если вы используете Wise, вы создадите сценарии по умолчанию, к которым затем можно будет добавить условия установщика Windows и более точно управлять событиями (установка, восстановление, изменение, удаление), чтобы они вызывали эквивалентные действия в вашем сценарии установки Inno Setup, которые бы необходимо установить и хранить во временной папке.

Смешивать технологии установки нет смысла.

Если вы микшируете, первая проблема возникает при удалении.без изменений вы получаете 2 деинсталлятора вашей программы.

в журнале entwickler есть несколько статей, начинающихся с установщика Windows.

  • Магазин Entwickler (Ausgabe:03.09/15.04.2009) Статья:MSI-Pakete MIT Open-Souce-Software Erzeugen Teil 4
  • Магазин Entwickler (Ausgabe:02.09/12.02.2009) Статья:MSI-Pakete MIT Open-Souce-Software Erzeugen Teil 3
  • Магазин Entwickler (Ausgabe:01.09/10.12.2008) Статья:MSI-Pakete MIT Open-Souce-Software Erzeugen Teil 2
  • Магазин Entwickler (Ausgabe:08.06/15.10.2008) Статья:Пакет MSI с открытым программным обеспечением

http://entwickler-magazin.de/

Установщик Windows должен быть единственной технологией для ваших установок.это перспективное и стабильное решение!

Обертывание установки Inno в пакет MSI — нетривиальная задача.Однако это возможно.Существует множество бесплатных инструментов, которые можно использовать для этого.Вам следует выбрать тот, который также поддерживает удаление и обновление.

Я нашел только один бесплатный инструмент, который поддерживает обновления и удаление.Проверить http://www.exemsi.com/inno-setup-and-msi

Это будет в значительной степени эквивалентно доставке ZIP-файла и вызову unzip в конце установки.

При таком подходе AD и установщик Windows будут обмануты, как если бы они занимались правильной установкой MSI, но, поскольку это не так, они обернутся для вас неприятными последствиями в первый же раз.

Не ходи сюда.

В любом случае WiX — это превосходный набор инструментов по сравнению с InnoSetup, поэтому время, которое вы потратите на изучение и портирование, окупится лучшей поддержкой совместной работы.

хотя последний комментарий возможен и осуществим, переход на MSI — лучший способ справиться с этой проблемой.

почти все крупные организации предусматривают только MSI, и тому есть множество причин.

1) Во -первых, простота развертывания 2) Более важным для некоторых является общительность применения 3) Самослучение

inno setup и другие подобные инструменты, не реализующие установщик Windows, просто не могут обеспечить взаимодействие с приложениями так же, как установщик Windows.

вы должны понимать, что установка Inno — это программное обеспечение, предназначенное для развертывания одного приложения.

Установщик Windows — это комплексная платформа, предназначенная для работы с коммуникабельностью, олицетворением пользователя, повышением прав пользователей, самовосстановлением и исправлением профиля пользователя.

Они даже отдаленно не близки по функциональности, установка inno, на мой взгляд, полностью и совершенно далека от курса с точки зрения сравнения с установщиком Windows.

Может ли он создать успешных инсталляторов?Да, это легко использовать?Да, это создает хорошие отдельные установщики?Да, это лучший выбор для предприятия?нет

Самым ранним инструментом, разработанным Microsoft «SMS Installer», был innosetup 10 лет назад.В мире установки все кардинально изменилось, и inno setup просто не поспевает за темпами этих изменений.

Мне нужно ввести пользовательское значение в Silent.inf (а не установленное значение настройки inno), похожее на то, что LOADINF позволяет это сделать.

Примечание. Если вы используете makemsi, вам не обязательно включать bat, поскольку вы можете использовать $WrapInstall.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top