Почему у многих программ есть и setup.exe, и setup.msi? - PullRequest
47 голосов
/ 24 мая 2009

Я всегда задавался вопросом об этом. У многих приложений есть zip-файл, который вы распаковываете, и в нем есть куча файлов, в том числе exe и msi. В чем разница? Они часто даже примерно одного размера. Я никогда не уверен, какой из них выполнить, иногда я выполняю exe, а иногда msi, и обычно он работает с любым из них. Но делает ли один из них что-то, что другой не делает? А если нет, разве это не пустая трата двух файлов, которые делают одно и то же? Особенно, если подумать о размере загружаемого файла и т. Д.

Не уверен, должно ли это быть здесь, или на ServerFault, или, может быть, ни на одном, но я подумал, так как разработчики обычно создают файлы установки, тогда разработчики могут знать, почему это так =)

Ответы [ 4 ]

38 голосов
/ 24 мая 2009

В случае, если у вас есть как exe, так и msi, exe - просто загрузчик для msi. Если у вас есть установка, поддерживающая несколько языков, то exe применяет преобразование языка (mst) в msi перед установкой.

Вы можете рассматривать exe как обертку вокруг msi. MSI-файл может или не может быть дано отдельно. Причина, по которой люди также предоставляют MSI-файл, заключается в упрощении установки групповой политики (в инфраструктуре Windows Active Directory), поскольку вы можете только завершить установку MSI-файлов, а не exes.

22 голосов
/ 30 декабря 2010

setup.exe - это оболочка для MSI, но это не только оболочка.

  • setup.exe может полагаться на setup.ini для определения параметров
  • setup.exe проверяет установщик Windows (иначе MSI установить нельзя)
  • setup.exe может проверять наличие фреймворков, таких как .NET framework. Разработчик может выбрать один из тех, которые определены в C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages (для Visual Studio 2008). Если его не хватает, он попытается загрузить его с http://www.microsoft.com/
  • setup.exe может быть перенастроен на msistuff.exe
14 голосов
/ 25 января 2010

Фактическая установка выполняется в MSI. Как сказал Прашаст, exe - это просто оболочка, но причина наличия exe в том, что exe всегда можно запустить. Если у пользователя не установлен MS Installer на компьютере, или его версия MS Installer старше, чем версия, необходимая для вашей установки, файл MSI не может быть запущен.

exe обеспечивает автоматическую установку MS Installer (включая некоторые вопросы к пользователю, если он / она хочет это сделать) перед запуском файла MSI. В большинстве случаев пакеты установки, необходимые для установщика Microsoft, включаются в файл setup.exe, а иногда это просто проверка предварительных условий со ссылкой для загрузки установки из Microsoft.

4 голосов
/ 04 сентября 2012

Проще говоря,

Вы можете доставить только MSI-файл, и он будет установлен. но .exe не будет работать без MSI

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...