Я создал установочный пакет с помощью Installaware и создал EXE и MSI. EXE - 3,1 МБ, а MSI - только 265K. Почему существует такая большая разница в размере?
Какая разница между EXE и установщиком MSI?
Ответ 1
Файл MSI может запускаться только с помощью msiexec.exe - Windows Installer Engine. Файл MSI - это файл базы данных установщика Windows, способный устанавливать программное обеспечение. Он требует правильной версии Runtime Engine Installer для Windows как минимум для установки. Большинство систем обновлены с последними версиями двигателей, так как оно происходит через Центр обновления Windows.
EXE файл, который вы создаете, представляет собой самораспаковывающееся приложение запуска, содержащее как MSI, так и различные требования времени выполнения, который может иметь установка.
Различные компоненты EXE файла могут включать:
- Версия Runtime Engine для Windows Installer требуется MSI (текущая версия 5.0). В эти дни эта среда выполнения должна быть установлена Windows Update, и ваша установка должна просто подтвердить, что она присутствует.
- Время выполнения сценариев, требуемое пользовательскими действиями в MSI (Installscript для Installshield)
- .NET runtime version, требуемый приложением (теперь вы получаете 10 версий). Я бы предпочел использовать Windows Update для этого, но если ваше приложение имеет передний край, вы можете включить требуемый движок.
- Файлы логотипов и экраны всплесков, возможно, на разных языках для многоязычных установок.
- Возможно несколько других компонентов.
Обратите внимание, что EXE файл также может быть установщиком, отличным от MSI. Другими словами, установщик старого стиля, не основанный на формате Microsoft MSI, который является базой данных MS-SQL, хранящейся в офисе -строчный двоичный файл, но установка script различных форматов, таких как Wise Script, Instalscript, Inno Setup и т.д. Однако в этом случае вопрос был о разнице в размере между exe и MSI из сборки InstallAware, а затем разница - это время выполнения, описанное выше.
Ответ 2
Разница заключается в следующем: пакет MSI содержит ваши файлы + install script, а фактическая установка выполняется установщиком Microsoft, который является частью Windows, и он заботится о отображении Windows, протоколировании сообщений и т.д. С другой стороны вручную, ваш установщик EXE хранит файлы + фактическую логику программы для запуска самой установки, несущей ответственность за почти все, отсюда и разницу.
Ответ 3
EXE, вероятно, содержит процедуры настройки, которые в противном случае выполняются с помощью msiexec
, который просто выполняет любую установку script, содержащуюся в MSI.