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

39069
Rabarberski

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

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

33
Как правило, Windows работает вечно, обычно я использую .exe для небольших программных пакетов, которые быстро устанавливаются самостоятельно. The Green Frog 14 лет назад 3
«Как правило, окнам нужно что-то делать вечно»? Смелое и неверное утверждение, если я когда-либо видел его. caliban 14 лет назад 7
Файлы MSI имеют много преимуществ для корпоративного использования: [преимущества развертывания MSI] (http://serverfault.com/a/274609/20599) Stein Åsmul 9 лет назад 2
[Более подробный ответ о переполнении стека] (http://stackoverflow.com/questions/1789530/what-are-the-specific-differences-between-msi-and-setup-exe-file) johntrepreneur 9 лет назад 0
В Stackoverflow есть вопрос об аналогичных строках: [Среды установки приложений Windows] (http://stackoverflow.com/questions/1284825/windows-application-installer-frameworks). Я думаю, это имеет хорошие моменты для вас. nik 14 лет назад 1

7 ответов на вопрос

22
caliban

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

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

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

Исполняемый файл часто меньше из-за лучшего сжатия, но, как правило, просто содержит и упаковывает MSI, автоматически распаковывает его и запускает установку в интерактивном режиме / пользователь выбирает режим параметров ... Oskar Duveborn 14 лет назад 4
MSI не просто для системных администраторов - хотя, конечно, они ими пользуются; Я обнаружил, что они, как правило, удаляются более полно при удалении по сравнению с их братьями из EXE (и нет - я не знаю почему) warren 14 лет назад 3
MSI не являются более безопасными, так как .exe может быть чем угодно, но .msi определенно является установочным пакетом? Dave Cousineau 9 лет назад 1
@Sahuagin Это может быть установочный пакет, который устанавливает вредоносное ПО. thameera 9 лет назад 0
@thameera все еще кажется большой разницей. MSI не будет иметь мастера, в то время как исполняемый будет просто выполнить? MSI не будет автоматически удаляться? Dave Cousineau 9 лет назад 1
@Sahuagin Действительный пункт. Но из того, что я узнал из ответов, MSI обычно является просто оберткой для exe. thameera 9 лет назад 0
@thameera Некоторые установщики программ для x64 (например, 7-Zip) * только * предоставляются в виде MSI. cybermonkey 8 лет назад 0
[** У MSI есть некоторые важные корпоративные преимущества **] (https://serverfault.com/questions/11670/the-corporate-benefits-of-using-msi-files/274609#274609). У разработчиков часто возникают проблемы с MSI из-за его экзотического дизайна в определенных областях, но для корпоративного развертывания файлы MSI намного превосходят предыдущие технологии развертывания. Stein Åsmul 6 лет назад 0
4

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

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

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

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

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

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

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

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

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

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

Итак, если важен язык мастера установки, возможно, вам повезет больше с .exe

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

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

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

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

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

-2
Wilson

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