В чем разница между установщиком EXE и MSI? - PullRequest
12 голосов
/ 08 октября 2010

Я создал установочный пакет с помощью Installaware и создал EXE и MSI. EXE-файл имеет размер 3,1 МБ, а MSI - только 265 КБ. Почему такая большая разница в размерах?

Ответы [ 3 ]

14 голосов
/ 22 мая 2014

ОБНОВЛЕНИЕ : Некоторые ресурсы с информацией о том, как обрабатывать различные типы файлов setup.exe:


Файл MSI может быть запущен только с помощью msiexec.exe - Модуль установщика Windows .Файл MSI - это файл базы данных установщика Windows, который может устанавливать программное обеспечение.Для установки требуется минимальная версия среды выполнения установщика Windows, как минимум.На большинстве систем установлены последние версии движка, так как он обновляется через Центр обновления Windows.

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

Различные компоненты файла EXE могут включать в себя:

  • Версия Run Engine Engine Runtime , которую требует MSI (текущая версия 5.0).В эти дни эта среда выполнения должна быть установлена ​​Центром обновления Windows, и ваша установка должна просто убедиться, что она присутствует.
  • Время выполнения сценариев, необходимое для пользовательских действий в MSI (сценарий установки для Installshield )
  • Требуемая приложением .NET версия времени выполнения (теперь доступно 10 версий).Я также предпочел бы использовать Центр обновления Windows для этого, но если ваше приложение является передовым, вы можете включить необходимый движок.
  • Файлы логотипов и заставки, возможно на разных языках для многоязычных установок
  • Возможно несколько других компонентов

Обратите внимание, что EXE-файл также может быть установщиком, отличным от MSI. Другими словами, установщик старого стиля, не основанный наФормат Microsoft MSI, представляющий собой базу данных MS-SQL, которая хранится в двоичном файле офисного стиля, но сценарий установки различных форматов, таких как Wise Script, Instalscript, Inno Setup и т. Д. Однако в этом случае вопрос былразница в размере между exe и MSI, полученным из сборки InstallAware, а затем разница в времени выполнения, описанном выше.

5 голосов
/ 08 октября 2010

Разница в том, что MSI-пакет содержит ваши файлы + скрипт установки, а фактическая установка выполняется установщиком Microsoft, который является частью Windows, и он заботится об отображении Windows, регистрации сообщений и т. Д. С другой стороны, ваш установщик EXE хранит файлы + реальную логику программы, чтобы запустить саму установку, отвечая практически за все, отсюда и разница.

0 голосов
/ 08 октября 2010

EXE, вероятно, содержит процедуры установки, которые в противном случае выполняются msiexec, который просто выполняет любой сценарий установки, содержащийся в MSI.

...