Поделиться через


Установщик Windows для разработчиков игр

Показывает, как можно использовать установщик Windows для установки игр на компьютерах конечных пользователей. Установщик Windows предлагает полную поддержку настраиваемого пользовательского интерфейса, а также исправлений.

Установщик Microsoft Windows — это предпочтительный API для установки программного обеспечения на компьютерах под управлением Windows. Хотя многие функции установщика Windows предназначены для поддержки развертывания бизнес-приложений в корпоративной среде, установщик Windows также полностью подходит для установки игр на компьютерах конечных пользователей. Основные преимущества использования установщика Windows для установки игр:

  • Надежное удаление
  • Возможность установки содержимого по запросу
  • Поддержка полностью настраиваемого пользовательского интерфейса
  • Эффективное исправление

В этой статье представлен обзор установщика Windows, специально предназначенного для разработчиков игр. Подробную документацию по функциям и API, упомянутым в этой статье, см. в Windows Platform SDK.

Общие сведения

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

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

Установщик Windows не является комплексным решением для создания установок. Это только API, который может использоваться программой установки для фактической установки файлов, разделов реестра, ярлыков рабочего стола и других элементов приложения. Последние версии всех основных коммерческих средств установки (например, InstallShield, WISE и Microsoft Visual Studio) поддерживают установщик Windows. Эти средства предоставляют удобные пользовательские интерфейсы для создания установки игры, но они используют API установщика Windows для выполнения большей части фактической установки. Эти средства также можно использовать только для создания базы данных MSI, содержащей пакет установки, который затем можно установить из пользовательского пользовательского интерфейса установки. В качестве альтернативы сторонним средствам API установщика Windows предоставляет все функции, необходимые для создания базы данных MSI и управления ими программными средствами, а Windows Platform SDK включает в себя средство редактирования базы данных MSI под названием Orca.

Основные понятия установщика Windows

Ниже приведены компоненты и компоненты установщика Windows.

Компоненты

Приложение состоит из одного или нескольких компонентов, идентифицируемых идентификатором компонента GUID. Компонент является атомарной единицей; он либо полностью установлен, либо вообще не установлен. Компонент может состоять из одного файла, нескольких файлов, разделов реестра, ярлыков на рабочем столе или их сочетания. Ресурсы (файлы и т. д.) в компоненте должны быть уникальными для этого компонента. Ни один из двух компонентов не может содержать один и тот же ресурс. Компонент никогда не устанавливается явным образом; он устанавливается только как часть компонента (см. ниже).

Компоненты

Компонент — это группа компонентов, определяемая идентификатором функции GUID. В отличие от компонентов, несколько компонентов могут содержать один и тот же компонент. Компонент, совместно используемый несколькими компонентами, будет установлен, если установлен какой-либо из этих компонентов, и удаляется только в том случае, если были удалены все компоненты, которые ссылаются на компонент. Установка компонента может быть выполнена автоматически в процессе установки продукта или вручную с помощью API MsiConfigureFeature .

Хотя в некоторых играх есть несколько "компонентов", которые можно установить независимо друг от друга, концепция установщика Windows по-прежнему полезна. Так как компонент установщика Windows — это не что иное, как набор компонентов, которые можно установить вместе, игры могут использовать функции для группировки всего содержимого, необходимого для определенного этапа игры. Например, игра, ориентированная на уровне, может определить одну функцию для каждого уровня, состоящую из всего содержимого, необходимого для этого уровня. Это позволит игре устанавливать содержимое одного уровня за раз из самой игры, а не устанавливать все содержимое для всех уровней во время начальной установки.

Состояния установки

Каждый компонент или компонент имеет связанное состояние установки, которое определяет, доступен ли компонент или компонент, и, если да, где установлены файлы компонента или компонента. Возможные состояния установки компонента:

Отсутствует

Компонент не установлен и поэтому недоступен.

Местных

Эта функция доступна и устанавливается для запуска с локального жесткого диска.

Источник

Компонент доступен и устанавливается для запуска с исходного исходного носителя (обычно компакт-диска или DVD-диска).

Рекламируется

Компонент не установлен, но его можно установить по запросу с помощью API MsiConfigureFeature . При фактической установке компонента его можно установить в локальном или исходном состоянии.

Компонент может иметь любое из указанных выше состояний, кроме "Объявлено". Если компонент является частью объявленного компонента, он будет отображаться как "Отсутствует", пока компонент не будет установлен.

Установка по запросу

Установщик Windows позволяет приложению помечать компоненты как объявленные. Это означает, что компонент еще не установлен, но доступен для установки во время выполнения, если это необходимо. Установка компонентов во время выполнения называется "Установка по запросу". Игры могут использовать установку по запросу, чтобы значительно сократить время, необходимое для начальной настройки игры, отложив установку содержимого игры до тех пор, пока оно не понадобится во время выполнения. Задержка, необходимая для установки содержимого во время выполнения, часто может быть частично или полностью скрыта, выполняя установку по запросу в фоновом потоке, в то время как пользователь в противном случае занят игрой.

Настраиваемый пользовательский

Хотя установщик Windows предоставляет пользовательский интерфейс по умолчанию, который направляет пользователя через установку приложения, этот интерфейс выглядит как стандартный интерфейс приложения Windows. Многие разработчики игр предпочитают, чтобы их пользовательский интерфейс установки был таким же, как и сама игра, чтобы предоставить пользователю вкус атмосферы игры. Для этого установщик Windows позволяет полностью отключить встроенный пользовательский интерфейс, что позволяет разработчику предоставить полностью настраиваемый пользовательский интерфейс.

Программа настраиваемой установки сначала отключает встроенный пользовательский интерфейс установщика Windows с помощью API MsiSetInternalUI , чтобы задать уровень пользовательского интерфейса INSTALLUILEVEL_NONE. Затем он вызывает API MsiSetExternalUI , чтобы указать функцию обратного вызова, которая будет вызываться в процессе установки, чтобы уведомить программу установки о ключевых событиях во время установки.

Затем процесс фактической установки запускается путем вызова API MsiInstallProduct . Этот API принимает строку параметра, которая позволяет вызывающей объекту указывать значения именованных свойств. Эти свойства можно использовать в самой базе данных установки для настройки способа установки приложения. Эти свойства можно использовать для указания:

  • Каталог, в который должно быть установлено приложение
  • Какие компоненты следует установить локально, а какие — для запуска с компакт-диска или DVD-диска (например, для выбора между минимальной и полной установкой)
  • Должно ли приложение быть установлено для всех пользователей компьютера или только для текущего пользователя

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

установка исправлений;

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

Чтобы создать исправление, вам потребуется образ установки для каждой версии приложения, с которой требуется обновить исправление, а также образ установки для новой обновленной версии приложения. Образ установки состоит из базы данных MSI и всех фактических файлов данных для приложения. Лучший способ создать образ установки для новой версии приложения — скопировать образ установки из предыдущей версии приложения, а затем внести изменения, необходимые для обновления этой копии до версии с исправлениями.

Получив все необходимые образы установки, вы можете создать исправления с помощью Msimsp.exe, которая является средством создания исправлений, доступным в составе пакета SDK для платформы. Средство запросит расположение каждого образа установки, а затем определит, как эффективно представить различия между последовательными версиями. Выходные данные средства — это окончательный файл исправления (определяется расширением MSP). Чтобы установить исправление программным способом, вызовите API MsiApplyPatch . Пользователь также может установить исправление вручную, дважды щелкнув MSP-файл в Обозреватель.

Другие ресурсы