Установите программное обеспечение: выберите .msi или .exe?

34

Некоторые сайты программного обеспечения позволяют загружать их программное обеспечение для установки в виде MSI-файла или EXE-файла. Когда предоставляется опция, какую из них выбрать для загрузки программного обеспечения, а именно: каковы преимущества использования MSI-файла вместо установщика (.exe)?

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

Rabarberski
источник
3
Как правило, Windows работает вечно, обычно я использую .exe для небольших программных пакетов, которые быстро устанавливаются самостоятельно.
Зеленая лягушка
1
В Stackoverflow есть вопрос об аналогичных строках: среды установки приложений Windows . Я думаю, это имеет хорошие моменты для вас.
Ник
7
«Как правило, окнам нужно что-то делать вечно»? Смелое и неверное утверждение, если я когда-либо видел.
калибр
2
Файлы MSI имеют много преимуществ для корпоративного использования: преимущества развертывания MSI
Стейн Осмул

Ответы:

22

Обычно MSI-пакеты предоставляются системным администраторам, которым необходимо развернуть программное обеспечение на нескольких терминалах по сети.

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

Если вы не являетесь системным администратором, используйте исполняемый файл.

Калибан
источник
4
Исполняемый файл часто меньше из-за лучшего сжатия, но, как правило, просто содержит и упаковывает msi, автоматически извлекает его и запускает установку в интерактивном режиме / пользователь выбирает параметры ...
Оскар Дювеборн
5
MSI не просто для системных администраторов - хотя, конечно, они ими пользуются; Я обнаружил, что они, как правило, удаляются более полно при удалении по сравнению с их братьями из EXE (и нет - я не знаю почему)
Уоррен
1
MSI не являются более безопасными, так как .exe может быть чем угодно, но .msi, безусловно, пакет установки?
Дейв Кузино
@Sahuagin Это может быть установочный пакет, который устанавливает вредоносное ПО.
Тамера
1
@thameera все еще кажется большой разницей. MSI не будет иметь мастера, в то время как exe будет просто выполнить? MSI не будет автоматически удаляться?
Дейв Кузино
5

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


источник
3
Как это означает, что MSI является рекомендуемым (читай: лучшим) методом?
hasen
3

Реального преимущества .exe над MSI нет, кроме того, что если вы используете Winrar (или некоторые другие), вы обычно можете извлечь все файлы из MSI-файла без необходимости устанавливать что-либо.

Уильям Хилсум
источник
Вы имели в виду .exe во втором предложении? Потому что распакованные .exe обычно имеют более чистую структуру файлов, чем .msi (на самом деле их можно открыть в диспетчере архивов).
Пользователь
1

Иногда, особенно при установке приложений .NET, есть Setup.exe и MSI. В случае .NET программа Setup.exe может проверить, чтобы убедиться, что в системе установлены все необходимые предварительные условия (например, .NET Frameowork и т. Д.) Для запуска приложения.

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

Если у вас есть все необходимые условия, Setup.exe просто запускает MSI-файл.

Millhouse
источник
То есть, вы говорите, что MSI не может проверить наличие необходимого программного обеспечения и предложить пользователю установить его?
Рабарберски
2
MSI может проверить требуемое программное обеспечение, это было бы немного сложнее для кода. В зависимости от того, какие инструменты использовались для создания установщика, Setup.exe может автоматически генерироваться некоторыми инструментами разработки MS, что облегчает жизнь программисту. Вот некоторые подробности, которые могут помочь: msdn.microsoft.com/en-us/magazine/cc163899.aspx
Millhouse,
1

Среди других тонких различий:

Один файл MSI может иметь только одну локаль для мастера установки ( подробности ).
Это может быть причиной распространения приложения в формате .exe, что является более гибким.

Так что, если важен язык мастера установки, вам может повезти с .exe

Николас Рауль
источник
Уверен, что это главная очевидная причина, и она противоречит приведенным выше предположениям, что сисадмины используют это! С глобальными devops, имеет больше смысла для системных администраторов, чтобы загрузить EXE. Черт возьми, за то, что все так запутано.
killjoy
0

Я лично предпочитаю .zip (или equivelant), если доступно. Так что я могу извлечь его где угодно, чтобы точно знать, что изменилось в моей системе (так как именно я изменил это).

Идеальной ситуацией была бы портативная программа.

Хотя если бы мне пришлось выбирать между exe и msi, я бы выбрал exe. Да просто так ..

Обычно MSI-файлы тратят много времени на бесполезный поиск конфигураций и тому подобного. exe-файлы тоже могут это делать, но больше похоже, что exe-файл просто извлечет файлы и установит ярлыки в меню «Пуск».

Hasen
источник
-2

ИМХО, MSI более безопасен в том смысле, что когда вы заразились вирусом, ваши exe-файлы могут заразиться, так как один из способов распространения вируса - блокировка его кода внутри исполняемых файлов. У них меньше шансов сделать это с файлом MSI.

Wilson
источник