Прежде, чем продолжить, необходимо ввести минимально необходимый для понимания дальнейшего текста набор терминов, используемых в Windows Installer. Таблица ниже включает список, достаточный для понимания текста данной статьи, в следующих статьях при необходимости будут добавлены новые термины.
Термин | Краткое описание |
Внешний пользовательский интерфейс | Пользовательский интерфейс, не использующий встроенные возможности Windows Installer. Такой интерфейс использует, например, инсталлятор Microsoft Visual Studio.NET. |
Встроенный пользовательский интерфейс | Пользовательский интерфейс, основанный на встроенных возможностях Windows Installer. Инсталляторы с таким интерфейсом работают в режиме Мастера, то есть инсталляция выполняется пошагово. Такой интерфейс используют, например, инсталляторы Microsoft Office 2000 и XP. |
Патч (заплата) | Метод обновления файлов на уровне изменения байтов, а не замены файла целиком. Применяется при мелких обновлениях. |
Инсталляционная база данных | Реляционная база данных, содержащая всю необходимую логику и данные для установки приложения |
Инсталляция по требованию | Служба Installer, позволяющая устанавливать приложение или его опции только, когда их запрашивает пользователь или другое приложение |
Код пакета | Глобально уникальный идентификатор (GUID) пакета (модуля инсталляции) |
Компонент | Наименьшая часть инсталляции, обрабатываемая инсталлятором, а также часть функциональности приложения с точки зрения программиста |
Обновление | Установка самой последней версии приложения |
Операция | Инкапсуляция некоторой типичной функции, выполняемой во время инсталляции или обновления приложения. |
Опция | Часть функциональности приложения, видимая со стороны пользователя |
Оценка стоимости | Метод, используемый Windows Installer для оценки дискового пространства, необходимого приложению |
Откат | Автоматическое восстановление оригинальной конфигурации компьютера при сбоях в установке |
Пакет (модуль) инсталляции | Состоит из .msi-файла и внешних, связаных с ним файлов. Содержит всю логику, необходимую для установки и удаления приложения. |
Подключаемый модуль | База данных, содержащая наборы компонентов. Позволяет создавать пакеты инсталляции из готовых наборов компонентов. Отдельно устанавливаться не может. |
Пользовательская операция | Операция, определенная разработчиком пакета инсталляции. |
Свойство | Глобальная переменная, используемая Windows Installer при интсалляции приложения |
Стандартная операция | Встроенная в Windows Installer предопределенная операция, например, CreateShortcuts или InstallFiles. |
Таблицы последовательности установки | Таблицы в инсталляционной базе данных, задающие правила установки |
Трансформация | Шаблон изменений, используемый для добавления или замены элементов исходной базы данных. Применяется, например, для замены языка приложения. |
Уровень базового пользовательского интерфейса | Уровень, при котором Windows Installer обеспечивает простой пользовательский интерфейс с немодальными диалогами. На этом уровне недоступно использование пользовательских диалогов. |
Уровень инсталляции | Уровень, задаваемый для каждой инсталляции. Приложение устанавливается только если его уровень меньше или равен уровню инсталляции. Таким образом, можно управлять инсталляцией наборов приложений. |
Уровень полного пользовательского интерфейса | Уровень, при котором можно задействовать все встроенные возможности пользовательского интерфейса Windows Installer |
Уровень сокращенного пользовательского интерфейса | Уровень, при котором Windows Installer обеспечивает интерфейс с немодальными пользовательскими диалогами. Также могут использоваться встроенные модальные диалоги для сообщений об ошибках. |
SQL (Structured Query Language) | Язык запросов, используемый для работы с реляционными базами данных. Windows Installer поддерживает ограниченное подмножество языка. |
Итак, продолжим. Что же такое технология Windows Installer, о которой я написал уже десяток абзацев, но еще ничего так толком и не сказал? Чем она так замечательна? Что в ней нового по сравнению с уже существующими решениями?