Каковы конкретные различия между .msi и setup.exe?

193

Я много искал, но все угадали ответы. Помоги мне найти точный ответ.

чиновник-индус
источник
6
Вот более свежий ответ
Штейн Осмул
Я хотел установить программу, которая шла с установщиком EXE и MSI. Сначала я установил из MSI, который устанавливал только программные файлы (без каких-либо предварительных условий или зависимостей, и не создавал значки меню Пуск). Когда я вручную запустил программу, она не смогла сказать, что некоторые библиотеки отсутствуют. Установка из EXE установила и другие вещи, и продукт работал нормально. Я бы сказал, если производитель программного обеспечения предоставляет для установки как EXE, так и MSI, используйте EXE.
Джеймс Л.

Ответы:

232

MSI - это база данных установщика Windows. Установщик Windows (служба, установленная с Windows) использует это для установки программного обеспечения в вашей системе (например, копирование файлов, установка значений реестра и т. Д.).

Setup.exe может быть загрузчиком или не MSI установщиком. Установщик, не относящийся к MSI, извлекает ресурсы установки из себя и управляет их установкой напрямую. Загрузчик будет содержать MSI вместо отдельных файлов. В этом случае setup.exe вызовет установщик Windows для установки MSI.

Некоторые причины, по которым вы можете использовать setup.exe :

  • Установщик Windows позволяет устанавливать только один MSI одновременно. Это означает, что MSI трудно установить другие MSI (например, такие зависимости, как .NET Framework или среда выполнения C ++). Поскольку файл setup.exe не является MSI, его можно использовать для последовательной установки нескольких MSI.
  • Возможно, вам потребуется более точный контроль над управлением установкой. У MSI есть очень специфические правила о том, как он управляет установками, включая установку, обновление и удаление. Setup.exe дает полный контроль над процессом настройки программного обеспечения. Это должно быть сделано только в том случае, если вам действительно нужен дополнительный контроль, так как это много работы, и может быть сложно сделать это правильно.
Кевин Киблер
источник
7
Я собирался напечатать это - это, вероятно, то, что он ищет
Mongoose
1
По моему опыту, создание установщика MSI - большая работа по сравнению с созданием установщика на основе exe. Это во многом зависит от инструментов, которые вы используете для создания установщика. К сожалению, все инструменты установки на основе MSI, которые я видел, были либо коммерческими инструментами с графическим интерфейсом, либо сложными инструментами на основе WiX. Ни то, ни другое не удовлетворяет моим потребностям особенно хорошо (то есть автоматическое создание инсталляторов с помощью скрипта).
craftworkgames
Так что мне все еще интересно, почему существует MSI. Какую проблему он пытался решить, когда кажется, что exe работает нормально?
Маффин Человек
14

MSI-файлы - это файлы установщика Windows без времени выполнения установщика Windows, setup.exe может быть любой исполняемой программой (вероятно, той, которая устанавливает файлы на ваш компьютер)

thbusch
источник
9

MSI - это файл установщика, который устанавливает вашу программу в исполняющей системе.

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

Изменить (как предлагается в комментарии): установочные исполняемые файлы не обязательно имеют ресурс MSI внутри

Крестный отец
источник
Установочные исполняемые файлы не обязательно имеют внутренний ресурс MSI.
jkmartindale
-10

MSI - это установщик от Microsoft, встроенный в Windows. Он связывает компоненты с функциями и содержит информацию об управлении установкой. Нет необходимости, чтобы этот файл содержал необходимые для пользователя файлы, то есть прикладные программы, которые ожидает пользователь. MSI может содержать в себе другой файл setup.exe, который MSI оборачивает, который на самом деле содержит необходимые пользователю файлы.

Надеюсь, это очистит вас от сомнений.

JPro
источник
13
Это сбивает с толку и, как правило, неверно - в этом случае MSIфайлы обычно НЕ переносят setup.exeфайлы, а наоборот.
Flak DiNenno
«MSI может содержать другой файл setup.exe, который MSI оборачивает» неверно! Скорее, верно обратное: в .exe есть .msi внутри.
ОДИН