Почему у многих программ есть setup.exe и setup.msi? - программирование

Почему у многих программ есть setup.exe и setup.msi?

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

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

4b9b3361

Ответ 1

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

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

Ответ 2

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

Ответ 3

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

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

Ответ 4

В основных словах

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