Установщик Windows
Эта статья нуждается в дополнительных цитатах для проверки . ( май 2020 г. ) |
Разработчик(и) | Майкрософт |
---|---|
Первоначальный выпуск | 31 августа 1999 г |
Финальный выпуск | 5.0
/ 22 июля 2009 г [1] |
Операционная система | Microsoft Windows |
Платформа | ИА-32 , x86-64 , ARM32 , ARM64 , итаниум |
Входит в комплект | Windows 2000 и более поздние версии |
Тип | Установщик |
Лицензия | Бесплатное ПО |
Веб-сайт | документы |
Расширение имени файла |
.msi, .msp |
---|---|
Тип интернет-СМИ |
приложение/x-ole-хранилище |
Разработано | Майкрософт |
Тип формата | Архив |
Контейнер для | Информация об установке и дополнительные полезные .cab. данные файла |
Расширено с | Структурированное хранилище COM |
Открытый формат ? | Нет |
Установщик Windows ( msiexec.exe
, ранее известный как Microsoft Installer , [3] кодовое имя Дарвин ) [4] [5] — это программный компонент и интерфейс прикладного программирования (API) Microsoft Windows, используемый для установки , обслуживания и удаления программного обеспечения. Информация об установке и, при необходимости, сами файлы упаковываются в установочные пакеты , слабо реляционные базы данных , структурированные как структурированные хранилища COM и широко известные как «файлы MSI», в зависимости от их расширений по умолчанию . Пакеты с расширениями файлов mst
содержат «Сценарии трансформации» установщика Windows, те, которые имеют msm
расширения содержат «Модули слияния» и расширение файла pcp
используется для «Свойства создания патча». [6] Установщик Windows содержит существенные изменения по сравнению со своим предшественником, API настройки. Новые функции включают в себя графического пользовательского интерфейса структуру и автоматическое создание последовательности удаления . Установщик Windows позиционируется как альтернатива автономным исполняемым средам установки, таким как старые версии InstallShield и NSIS .
До появления Microsoft Store (тогда называвшегося Windows Store) Microsoft поощряла третьи стороны использовать установщик Windows в качестве основы для установочных платформ, чтобы они правильно синхронизировались с другими установщиками и поддерживали согласованность внутренней базы данных установленных продуктов. Надежная работа важных функций, таких как откат и управление версиями, зависит от согласованной внутренней базы данных. Кроме того, установщик Windows реализует принцип минимальных привилегий , выполняя установку программного обеспечения через прокси для непривилегированных пользователей.
Логическая структура пакетов
[ редактировать ]Пакет описывает установку одного или нескольких полных продуктов и универсально идентифицируется по GUID . Продукт состоит из компонентов , сгруппированных по функциям . Установщик Windows не обрабатывает зависимости между продуктами.
Продукты
[ редактировать ]Отдельная установленная работающая программа (или набор программ) является продуктом . Продукт идентифицируется уникальным идентификатором GUID (свойство ProductCode), обеспечивающим авторитетную идентификацию во всем мире. GUID в сочетании с номером версии (свойство ProductVersion) позволяет управлять выпуском файлов и ключей реестра продукта.
Пакет . включает в себя логику пакета и другие метаданные , относящиеся к тому, как пакет выполняется при запуске Например, изменение EXE-файла в продукте может потребовать изменения ProductCode или ProductVersion для управления выпуском. Однако простое изменение или добавление условия запуска (при этом продукт остается точно таким же, как и предыдущая версия) все равно потребует изменения PackageCode для управления выпуском самого файла MSI.
Функции
[ редактировать ]Объект представляет собой иерархическую группу компонентов. Функция может содержать любое количество компонентов и других подфункций. Меньшие пакеты могут состоять из одной функции. Более сложные программы установки могут отображать диалоговое окно «настраиваемая настройка», в котором пользователь может выбрать, какие функции установить или удалить.
Автор пакета определяет возможности продукта. Например, текстовый процессор может поместить основной файл программы в одну функцию, а файлы справки программы, дополнительную проверку орфографии и канцелярские модули — в дополнительные функции.
Компоненты
[ редактировать ]Компонент – это базовая единица продукта. Каждый компонент рассматривается установщиком Windows как единое целое. Установщик не может установить только часть компонента. [7] Компоненты могут содержать программные файлы , папки , COM- компоненты, ключи реестра и ярлыки . Пользователь не взаимодействует напрямую с компонентами.
Компоненты идентифицируются глобально по идентификаторам GUID; таким образом, один и тот же компонент может использоваться несколькими функциями одного и того же пакета или нескольких пакетов, в идеале за счет использования модулей слияния .
Ключевые пути
[ редактировать ]Путь к ключу — это конкретный файл, ключ реестра или источник данных ODBC , который автор пакета указывает как критический для данного компонента. Поскольку файл является наиболее распространенным типом пути к ключу, термин «файл ключа» обычно используется . Компонент может содержать не более одного ключевого пути; если у компонента нет явного пути к ключу, в качестве пути к ключу принимается папка назначения компонента. При запуске программы на основе MSI установщик Windows проверяет наличие путей к ключам. Если существует несоответствие между текущим состоянием системы и значением, указанным в пакете MSI (например, отсутствует файл ключа), соответствующая функция устанавливается повторно. Этот процесс известен как самоисцеление или самовосстановление . Никакие два компонента не должны использовать один и тот же ключевой путь.
Разработка установочных пакетов
[ редактировать ]Создание установочного пакета для нового приложения — нетривиальная задача. Необходимо указать, какие файлы необходимо установить, куда и с какими ключами реестра. Любые нестандартные операции можно выполнить с помощью Custom Actions, которые обычно разрабатываются в DLL . Существует ряд коммерческих и бесплатных продуктов, помогающих создавать пакеты MSI, включая Visual Studio (вплоть до VS 2010, [8] с расширением для новых версий VS [9] ), InstallShield и WiX . В той или иной степени пользовательский интерфейс и поведение могут быть настроены для использования в менее распространенных ситуациях, таких как автоматическая установка. После подготовки пакет установщика «компилируется» путем чтения инструкций и файлов с локального компьютера разработчика и создания файла .msi.
Пользовательский интерфейс (диалоговые окна), представленный в начале установки, может быть изменен или настроен инженером по установке, разрабатывающим новый установщик. Существует ограниченный язык кнопок, текстовых полей и меток, которые можно организовать в виде последовательности диалоговых окон. Пакет установщика должен работать без какого-либо пользовательского интерфейса, что называется «автоматической установкой».
ICE-проверка
[ редактировать ]Microsoft предоставляет набор оценщиков внутренней согласованности (ICE), которые можно использовать для обнаружения потенциальных проблем с базой данных MSI. [10] Правила ICE объединяются в файлы CUB, которые представляют собой урезанные файлы MSI, содержащие настраиваемые действия, которые проверяют содержимое целевой базы данных MSI на наличие предупреждений и ошибок проверки. Проверка ICE может выполняться с помощью инструментов Platform SDK Orca и msival2 или с помощью инструментов проверки, которые поставляются с различными средами разработки.
Например, некоторые из правил ICE:
- ICE09: проверяет, что любой компонент, предназначенный для системной папки, помечен как постоянный.
- ICE24: проверяет, что код продукта, версия продукта и язык продукта имеют соответствующие форматы.
- ICE33: проверяет, что таблица реестра не используется для данных, которые лучше подходят для другой таблицы (класс, расширение, глагол и т. д.).
Устранение предупреждений и ошибок проверки ICE является важным шагом в процессе выпуска.
Версии
[ редактировать ]См. также
[ редактировать ]- APPX — формат пакета программного обеспечения, используемый в Магазине Windows Microsoft.
- App-V — формат пакета программного обеспечения, используемый для виртуализации и потоковой передачи.
- .Exe
- Список установочного программного обеспечения
- Система управления пакетами
- Утилита очистки установщика Windows
- Диспетчер пакетов Windows
- ZAP-файл – способ выполнить установку приложения, когда MSI-файл не существует.
Ссылки
[ редактировать ]- ^ Перейти обратно: а б «Выпущенные версии установщика Windows» . Сеть разработчиков Microsoft . Майкрософт . Проверено 3 ноября 2012 г.
- ^ «Подробности о расширении файла .MSI» . Filext.com . Проверено 24 апреля 2013 г.
- ^ Меншинг, Роб (25 ноября 2003 г.). «Внутри формата файла MSI» . Блоги MSDN . Архивировано из оригинала 15 января 2009 г. Проверено 15 февраля 2017 г.
- ^ Меншинг, Роб (11 октября 2003 г.). «История Орки» . Блоги MSDN . Архивировано из оригинала 23 декабря 2008 г. Проверено 15 февраля 2017 г.
- ^ Смит, Крис (1 июля 2005 г.). «Установщик Windows, .NET Framework, загрузчик и вы» . Блоги MSDN . Проверено 15 февраля 2017 г.
- ^ Стюарт, Хит (27 февраля 2006 г.). «Определение типов файлов установщика Windows» . Проверено 22 апреля 2020 г.
- ^ «Компоненты установщика Windows» . Библиотека MSDN . Корпорация Майкрософт . 30 ноября 2012 г. Проверено 08 апреля 2013 г.
- ^ Ходжес, Бак (17 марта 2011 г.). «Проекты установки Visual Studio (vdproj) не будут поставляться с будущими версиями VS» . Блоги MSDN . Проверено 4 февраля 2020 г.
- ^ «Расширение проектов установщика Visual Studio» . Блог Visual Studio . 17 апреля 2014 г. Проверено 4 февраля 2020 г.
- ^ Внутренние оценщики согласованности - ICE
- ^ «Применение полных обновлений к клиентским компьютерам» . Майкрософт . 9 марта 2004 г. Архивировано из оригинала 10 апреля 2004 г.
- ^ Что нового в установщике Windows 4.5
- ^ «Выпущенные версии установщика Windows (Windows)» . Msdn.microsoft.com. 30 ноября 2012 г. Проверено 24 апреля 2013 г.