В чем основное различие между установочными файлами MSI и EXE?

13

Мы, конечно, видим, что некоторые .exeфайлы должны быть выполнены, но какова различная функциональность файлов MSI?

Дхайват буд
источник
Смотрите ответы ниже или, возможно, читайте о корпоративных преимуществах MSI на serverfault.com. В этой статье подробно описывается, какие преимущества должны принести MSI-файлы ..
Стейн Осмул,

Ответы:

7

MSI является аббревиатурой от Microsoft Silent Installer, он запускает установщик .exe в фоновом режиме.

Он используется в GPO, например, если вы хотите развернуть приложение в инфраструктуре Windows, которой вы управляете, вам нужно создать новое правило GPO с MSI, и MSI будет установлен на каждом компьютере без вмешательства пользователя.

GPO - это «объект групповой политики», который «обеспечивает централизованное управление и настройку операционных систем, приложений и пользовательских настроек в среде Active Directory».

Клем
источник
1
GPO - это «объект групповой политики», который «обеспечивает централизованное управление и настройку операционных систем, приложений и пользовательских настроек в среде Active Directory».
RedGrittyBrick
5
... больше похоже на [M] icro [s] of [I] nstaller. Откуда, черт возьми, ты "молчал"? Нет, MSI не запускают PE-файлы в фоновом режиме (они способны на это, но это не единственная или даже основная функция).
Боб
3
The Windows Installer (previously known as Microsoft Installer) is a software component...- Википедия . Да, MSI - это программа установки MicroSoft, а не программа установки без вывода сообщений.
Jet
3
Большая часть этого ответа на самом деле неверна. Пожалуйста, прочитайте другие ответы в этой теме.
Штейн Осмул
Я слышу эту полную форму Microsoft Silent Installerв первый раз. Я всегда знал , что MSI означает M ICRO s часто я nstaller`. У вас есть официальная цитата, которая так говорит?
RBT
11

Что такое установщик? Что ж, установщик подготавливает систему для запуска программы: он устанавливает эту программу. Во время этого процесса установщик (в Windows) может копировать файлы в системные расположения, размещать ярлыки для его запуска, обновлять библиотеки, удалять более старые версии и т. Д. Универсального стандарта или формата установщика не существует; любая программа, которая выполняет эти действия («устанавливает» другую программу), может называться установщиком.

Файл "exe" в Windows известен как файл Portable Executable и содержит произвольные инструкции, либо машинный код, либо байт-код .NET. В формате PE нет ничего, что идентифицировало бы его как установщик. Конечно, с произвольным машинным кодом вы можете написать установщик - и те установщики «exe», которые вы видите, используют этот подход.

Некоторые люди пишут свои собственные установщики. Другие используют генераторы установщика, чтобы сэкономить время и силы; к ним относятся NSIS, InnoSetup, InstallShield и другие.

MSI - это особый формат, используемый для хранения информации об установке, базы данных о том, какие шаги предпринять и какие файлы поместить куда. Сам по себе он не является исполняемым; это на самом деле интерпретируется msiexec.exeв системах Windows. Этот интерпретатор будет затем выполнять шаги, изложенные в файле MSI. Теоретически вы можете создать любой исполняемый файл, который использует базу данных, аналогичную MSI (а NSIS, InnoSetup и т. Д. Делают что-то подобное).

Что делает MSI особенным, так это то, что он включен и интерпретируется встроенными инструментами, а также интегрирован в Active Directory для более удобного развертывания на многих машинах в корпоративной среде, и ответ Клема охватывает это более подробно.

боб
источник
6

Файлы MSI - это файлы базы данных (в частности, базы данных MS-SQL), которые описывают установку с помощью таблиц базы данных и устанавливают с помощью сложного набора последовательностей установки, определенных в самом файле MSI.

MSI-файлы не устанавливаются в виде EXE-файлов в фоновом режиме, как пишет «Clem» - они используются механизмом установщика Windows , доступным через интерфейс командной строки msiexec.exe . Или, возможно, попробуйте аннотированные образцы командной строки msiexec.exe от Advanced Installer . Затем сама установка выполняется в двух разных последовательностях: последовательность пользовательского интерфейса и фактическая последовательность установки - последняя выполняется в системном контексте с использованием учетной записи LocalSystem . Эта договоренность необходима, чтобы разрешить установщику временные права администратора или повышенные права, что является подходящим термином.

Установщики EXE могут быть чем угодно. Чаще всего это установщики на основе сценариев более старого стиля, которые не основаны на базах данных, но EXE-файл также может быть оболочкой, содержащей файлы MSI и связанные компоненты времени выполнения. Все зависит и должно быть исследовано в каждом конкретном случае.

Штейн Осмул
источник