
- Описание формата MSI
- Содержание
- История [ править | править код ]
- Логическая структура пакета [ править | править код ]
- Физическая структура пакета [ править | править код ]
- Процесс установки [ править | править код ]
- Действия [ править | править код ]
- Сбор информации [ править | править код ]
- Выполнение [ править | править код ]
- Откат [ править | править код ]
- Прочие возможности [ править | править код ]
- Анонсирование и установка по требованию [ править | править код ]
- Установка по требованиям [ править | править код ]
- Расширение MSI
- Чем открыть файл MSI
- Описание расширения MSI
Описание формата MSI
Файл MSI относится к установочным пакетам для платформы Microsoft Windows. Данный формат файла, включает в себя наличие программного обеспечения, отвечающего за обновления ОС или установку определенных программных комплексов. MSI файл относят к документам OLE, содержащим определенные базы данных, которые состоят из наборов взаимосвязанных таблиц с заданной информацией.
Формат MSI может хранить пользовательский сценарий либо вспомогательную библиотеку DLL, последняя может требоваться в целях установки ПО. Файлы расширением .msi, возможно размещать отдельно от установочных пакетов, как в запакованном виде, так и в распакованном.
Чтобы выполнить открытие файла .msi, используют Windows Installer, являющийся штатным средством установки программ, разработанным компанией Майкрософт. Стоит отметить, что Microsoft Windows Installer, считается подсистемой и компонентом операционной системы Windows, начиная от версии Windows 2000. Установочный процесс распределяется на несколько этапов, включающих в себя сбор информации, действия, отвечающие за установку программ и возможный откат при наличии ошибок, когда операционная система начинает конфликтовать с загружаемым контентом.
Тип файла, имеющий расширение MSI, может работать и с утилитами файловой декомпрессии, к примеру Universal Extractor, The Unarchiver либо 7-Zip, такие приложения способны открыть MSI и извлечь его содержимое. Чтобы открыть файл, достаточно дважды кликнуть по нему посредством левой клавиши мыши. Примечательно, что .msi файл в Windows Vista, был заменен на расширение файла MSU. Если у пользователя не получается открыть файл MSI, есть вероятность того, что поврежден установочный пакет, файл или сам установщик Windows.
| Установщик Windows | |
|---|---|
| Тип | компонент Microsoft Windows [d] |
| Разработчик | Microsoft |
| Операционная система | Windows |
| Последняя версия | 5.0 [1] (22 июля 2009 года) |
| Читаемые форматы файлов | Windows Installer Package [d] , Windows Setup Information File [d] и Windows Setup inf_loc file [d] |
| Лицензия | Пользовательское соглашение Microsoft |
| Сайт | microsoft.com |
Windows Installer (установщик Windows, кодовое имя — Darwin [2] [3] ) — подсистема Microsoft Windows, обеспечивающая установку программ (инсталлятор). Является компонентом Windows, начиная с Windows 2000; может доустанавливаться и на более ранние версии Windows. Вся необходимая для установки информация (иногда и вместе с устанавливаемыми файлами) содержится в установочных пакетах (installation packages), имеющих расширение .msi [4] .
Содержание
История [ править | править код ]
Windows Installer был разработан в 1995—1998 годах и имел вначале кодовое название Darwin. Ранние версии назывались Microsoft Installer, отсюда стандартное расширение файла инсталляционного пакета — .msi. [5]
Первая версия Installer’а вышла в начале 1999 в качестве инсталлятора Microsoft Office 2000. В конце того же года Installer стал частью Windows 2000. Майкрософт всячески поощрял переход разработчиков на новый инсталлятор, включив в список требований к программам, желающим получить так называемый знак Windows 2000 Logo, требование устанавливаться с помощью Windows Installer.
Windows Installer оказался значительным шагом вперёд по отношению к предыдущему инсталлятору Microsoft — Setup API (ACME Setup): в нём были введены возможности GUI, поддержка деинсталляции и отката в любой момент установки (включая откат во время деинсталляции), корректная работа с правами доступа в Windows и другие возможности, что сделало его сильной альтернативой различным существовавшим на рынке инсталляционным пакетам.
В будущих обновлениях будет представлен .MSIX, который станет своеобразным гибридом .APPX и .MSI, позволяющий инсталлировать UWP приложения в систему (Сейчас же это возможно только непосредственно через Microsoft Store)
Логическая структура пакета [ править | править код ]
Инсталляционный пакет описывает установку одного продукта и имеет свой GUID. Продукт состоит из компонентов (components) (тоже имеющих свои GUIDы), сгруппированных в возможности (features).
Компонент (component) — минимальная неделимая установочная единица, представляющая собой группу файлов, значений реестра, создаваемых папок и других элементов, объединённых общим именем (именем компоненты) и либо устанавливаемых вместе, либо не устанавливаемых. Компоненты скрыты от конечного пользователя. Каждая компонента имеет ключевой путь (key path) — например, имя своего главного файла — по которому определяется наличие этой компоненты на компьютере пользователя.
Возможность (feature; в русифицированной версии Windows именно это слово переводится как «компонента», что вносит путаницу) — это иерархическая группа компонент и/или других возможностей. Когда при установке показывается диалог выбора устанавливаемых частей программы, пользователь управляет выбором именно возможностей. Выбор возможности для установки влечёт за собой установку всех компонентов, которые в неё включены [6] .
Физическая структура пакета [ править | править код ]
Файл .msi представляет собой составной документ OLE (OLE compound document — в том же формате-контейнере хранятся документы Microsoft Word, Excel и т. д.), в котором содержится небольшая реляционная база данных — набор из нескольких десятков взаимосвязанных таблиц, содержащих различную информацию о продукте и процессе установки. При этом все строковые данные в базе хранятся вместе в отдельном потоке документа, а в таблицах базы на них имеются ссылки; таким образом избегают дублирования строк, что значительно уменьшает размер базы.
Кроме базы, структура файла .msi предусматривает помещение туда пользовательских сценариев и вспомогательных DLL, если таковые требуются для установки, а также самих устанавливаемых файлов, запакованных в формате .cab. Файлы можно размещать и отдельно от пакета, в запакованном или распакованном виде (с сохранением структуры каталогов).
Процесс установки [ править | править код ]
Процесс установки состоит из нескольких этапов — сбора информации, выполнения (собственно установки), а также, возможно, отката (в случае ошибки или отмены установки пользователем).
Действия [ править | править код ]
Каждый этап установки состоит из последовательности действий (actions), записанной в базе данных. Действиям присвоены номера, определяющие порядок их выполнения, а иногда — и условия, при которых действия выполняются или не выполняются.
Большая часть действий — это стандартные действия, характерные для типичного процесса сбора информации и установки. Все эти действия документированы, кроме них, пользователь может определить и свои действия (custom actions).
Действия, определённые пользователем, могут быть либо написаны на одном из скриптовых языков, встроенных в операционную систему (JScript или VBScript так же и Eclipse, побочный язык от C++), либо размещаться в специально созданной DLL (написанной на таких языках, как C, C++ и т. д.). Файлы с этими действиями помещаются внутрь файла .msi и извлекаются оттуда в начале запуска установки. Эти DLL извлекаются в каталог WindowsInstaller, при этом им присваиваются случайные имена, например MSIF65E.tmp.
Сбор информации [ править | править код ]
На этапе сбора информации Windows Installer собирает инструкции (либо путём взаимодействия с пользователем, либо программным путём) установить или удалить одну или несколько возможностей, входящих в продукт. Эти инструкции в дальнейшем формируют на основе базы данных внутренний сценарий, детально описывающий последующий этап выполнения.
Этот этап называют также непосредственным режимом (immediate mode).
Выполнение [ править | править код ]
К началу этого этапа инсталлятор генерирует внутренний сценарий, предназначенный для выполнения без вмешательства пользователя. Этот сценарий выполняется инсталлятором в привилегированном режиме службы NT (конкретно — под аккаунтом LocalSystem). Привилегированный режим требуется из-за того, что инсталляция могла быть запущена пользователем, не обладающим необходимыми правами для изменения системных параметров и файлов (хотя право установить программу ему было предоставлено).
Этот этап иногда называется отложенным режимом (deferred mode).
Откат [ править | править код ]
Если какое-либо из действий, определённых в сценарии, оканчивается неудачей, или установка в процессе отменяется пользователем, все действия, выполненные до этого места, откатываются, возвращая систему в состояние, бывшее до установки. Откат обеспечивается наличием для каждого действия, вносящего изменение в систему, обратного к нему. Вводя в пакет нестандартные действия, программист также должен создать обратные к ним для правильной работы отката [7] .
Прочие возможности [ править | править код ]
Анонсирование и установка по требованию [ править | править код ]
Установщик Windows может рекламировать продукт, а не устанавливать его [8] . Продукт появится у пользователя, но он фактически не будет установлен до тех пор, пока он не будет запущен в первый раз (с помощью ярлыка в меню «Пуск»). Установочный пакет может быть объявлен администратором с использованием групповой политики Windows, или другого механизма компилирования, или путём запуска исполняемого файла msiexec с помощью /jm (для рекламы для каждого устройства), или /ju (для рекламы для каждого пользователя). Некоторые пакеты MSI, созданные в InstallShield, могут помешать использованию этих, и других встроенных функций MSI.
Пользователь должен иметь права администратора, чтобы завершить рекламируемую установку.
Установка по требованиям [ править | править код ]
Подобно рекламированию продукта, установка по требованиям устанавливает функцию, как только пользователь пытается её использовать [9] .
Расширение MSI
Чем открыть файл MSI
В Windows: Windows Installer, Microsoft Windows, Windows Installer XML, 7-Zip
Описание расширения MSI
Популярность: 
Разработчик: Microsoft
Расширение MSI – это файл, который обычно связан с сервисом установщика Microsoft Windows Installer, который является компонентом Windows, начиная с Windows 2000. *.MSI файл содержит установочный пакет для быстрой и безупречной установки на платформе Windows. MSI файл может быть использован как сторонними разработчиками для установки программного обеспечения, так и для обновления Windows. Эти файлы содержат всю информацию, которая необходима установщику Windows для установки или удаления приложения или продукта, и для конфигурации пользовательского интерфейса.
Каждый такой пакет установки включает в себя файл *.MSI, представляющий собой составной документ OLE, содержащий установочную базу данных – набор из взаимосвязанных таблиц, содержащих различную информацию о продукте и процессе установки. Кроме базы, в .MSI файле можно помещать пользовательские сценарии (написанные на JScript, VBScript или Eclipse) и вспомогательные DLL, если таковые требуются для установки, а также сами устанавливаемые файлы, запакованные в формате .CAB.
Файл с расширением MSI так же можно распаковать с помощью архиваторов, например, 7-Zip или с помощью утилиты коммандной строки (cmd.exe), в ней необходимо выполнить команду: msiexec /a c:filename.msi /qb TARGETDIR=c: mp
ПРИМЕЧАНИЕ: В Windows Vista файлы .MSU используются для установки обновлений и исправлений системы.