Partager via


Windows Installer pour les développeurs de jeux

Montre comment Windows Installer peut être utilisé pour installer des jeux sur les ordinateurs des utilisateurs finaux. Windows Installer offre une prise en charge complète d’une interface utilisateur personnalisée, ainsi que de la mise à jour corrective.

Microsoft Windows Installer est l’API préférée pour l’installation de logiciels sur des ordinateurs Windows. Bien que la plupart des fonctionnalités de Windows Installer soient conçues pour prendre en charge le déploiement d’applications métier dans un environnement d’entreprise, Windows Installer est également parfaitement adapté à l’installation de jeux sur les ordinateurs des utilisateurs finaux. Les principaux avantages de l’utilisation de Windows Installer pour l’installation de jeux sont les suivants :

  • Désinstallation fiable
  • Possibilité d’installer du contenu à la demande
  • Prise en charge de l’interface utilisateur entièrement personnalisée
  • Mise à jour corrective efficace

Cet article donne une vue d’ensemble de Windows Installer, spécifiquement destiné aux développeurs de jeux. Pour obtenir une documentation détaillée sur les fonctionnalités et LES API mentionnées dans cet article, reportez-vous aux SDK de plateforme Windows.

Vue d’ensemble

Toutes les installations basées sur Windows Installer utilisent un fichier de base de données d’installation appelé fichier MSI pour décrire la façon dont l’application doit être installée. Le fichier MSI contient des informations sur les fichiers, clés de Registre, raccourcis de bureau, associations de fichiers et autres éléments d’application à installer. Les fichiers réels à installer peuvent être compressés dans le fichier MSI lui-même, regroupés et compressés dans des « fichiers d’armoire » distincts, ou stockés ailleurs sur le support d’installation en tant que fichiers non compressés individuels. Le fichier MSI peut également référencer des actions personnalisées implémentées en externe, afin d’autoriser les actions pour lesquelles le fichier MSI n’autorise pas en mode natif.

Un fichier MSI peut éventuellement contenir une interface utilisateur pour guider l’utilisateur tout au long du processus d’installation. Cette interface utilisateur est adaptée à la plupart des applications. Toutefois, il a l’apparence d’une application Windows normale, et de nombreux développeurs de jeux préfèrent que leur application de configuration conserve l’apparence du jeu lui-même, afin de fournir une expérience utilisateur final plus cohérente. Pour prendre en charge ce scénario d’interface utilisateur entièrement personnalisé, une application d’installation peut désactiver l’interface utilisateur intégrée de Windows Installer et gérer l’ensemble de l’interface utilisateur elle-même. L’API Windows Installer expose un mécanisme de rappel pour permettre à une interface utilisateur d’installation personnalisée d’être avertie de la progression de l’installation, ainsi que d’événements importants tels que les demandes de modification de disque.

Windows Installer n’est pas une solution de bout en bout pour créer des configurations. Il s’agit uniquement d’une API qui peut être utilisée par un programme d’installation pour effectuer l’installation réelle de fichiers, de clés de Registre, de raccourcis de bureau et d’autres éléments de l’application. Les versions récentes de tous les principaux outils d’installation commerciale (par exemple InstallShield, WISE et Microsoft Visual Studio) prennent en charge Windows Installer. Ces outils fournissent des interfaces utilisateur pratiques pour créer la configuration d’un jeu, mais ils s’appuient sur l’API Windows Installer pour effectuer une grande partie de l’installation réelle. Ces outils peuvent également être utilisés uniquement pour créer une base de données MSI contenant le package d’installation, qui peut ensuite être installée à partir d’une interface utilisateur d’installation écrite personnalisée. En guise d’alternative aux outils tiers, l’API Windows Installer fournit toutes les fonctions nécessaires à la création et à la manipulation d’une base de données MSI par programmation, et la SDK de plateforme Windows inclut un outil d’édition de base de données MSI complet appelé Orca.

Concepts clés de Windows Installer

Voici les composants et fonctionnalités de Windows Installer.

Components

Une application est constituée d’un ou plusieurs composants, identifiés par un ID de composant GUID. Un composant est une unité atomique ; il est soit entièrement installé, soit pas installé du tout. Un composant peut se composer d’un fichier unique, de plusieurs fichiers, de clés de Registre, de raccourcis de bureau ou d’une combinaison de ces derniers. Les ressources (fichiers, etc.) au sein d’un composant doivent être uniques à ce composant. Deux composants ne peuvent pas contenir la même ressource. Un composant n’est jamais installé explicitement ; elle est installée uniquement dans le cadre d’une fonctionnalité (voir ci-dessous).

Fonctionnalités

Une fonctionnalité est un groupe de composants identifiés par un ID de fonctionnalité GUID. Contrairement aux composants, plusieurs fonctionnalités peuvent contenir le même composant. Un composant partagé entre plusieurs fonctionnalités est installé si l’une de ces fonctionnalités est installée et supprimé uniquement lorsque toutes les fonctionnalités qui font référence au composant ont été désinstallées. L’installation d’une fonctionnalité peut être effectuée automatiquement dans le cadre de l’installation d’un produit, ou manuellement à l’aide de l’API MsiConfigureFeature .

Bien que peu de jeux ont plusieurs « fonctionnalités » qui peuvent être installées indépendamment, le concept windows installer d’une fonctionnalité est toujours utile. Étant donné qu’une fonctionnalité Windows Installer n’est rien d’autre qu’une collection de composants pouvant être installés ensemble, les jeux peuvent utiliser des fonctionnalités pour regrouper tout le contenu nécessaire pour une étape particulière du jeu. Par exemple, un jeu orienté niveau peut définir une fonctionnalité par niveau, comprenant tout le contenu requis pour ce niveau. Cela permettrait au jeu d’installer le contenu un niveau à la fois à partir du jeu lui-même, plutôt que d’installer tout le contenu pour tous les niveaux lors de l’installation initiale.

États d’installation

Chaque composant ou fonctionnalité a un état d’installation associé, qui détermine si le composant ou la fonctionnalité est disponible et, le cas échéant, où les fichiers du composant ou de la fonctionnalité sont installés. Les états d’installation possibles pour une fonctionnalité sont les suivants :

Absent

La fonctionnalité n’est pas installée et est donc inaccessible.

Local

La fonctionnalité est disponible et est installée pour s’exécuter à partir du disque dur local.

Source

La fonctionnalité est disponible et est installée pour s’exécuter à partir du support source d’origine (généralement un CD ou UN DVD).

Annoncé

La fonctionnalité n’est pas installée, mais peut être installée à la demande à l’aide de l’API MsiConfigureFeature . Lorsque la fonctionnalité est réellement installée, elle peut être installée à l’état Local ou Source.

Un composant peut avoir l’un des états ci-dessus à l’exception de « Publié ». Si un composant fait partie d’une fonctionnalité annoncée, le composant apparaît comme « Absent » jusqu’à ce que la fonctionnalité soit installée.

Installer à la demande

Windows Installer permet à une application de marquer les fonctionnalités comme publiées, ce qui signifie que la fonctionnalité n’est pas encore installée, mais qu’elle peut être installée au moment de l’exécution si nécessaire. L’installation des fonctionnalités au moment de l’exécution est appelée « Installer à la demande ». Les jeux peuvent utiliser Installer à la demande pour réduire considérablement le temps nécessaire à la configuration initiale du jeu en reportant l’installation du contenu du jeu jusqu’à ce qu’il soit nécessaire au moment de l’exécution. Le délai requis pour installer le contenu au moment de l’exécution peut souvent être partiellement ou complètement masqué en effectuant l’installation à la demande dans un thread d’arrière-plan, alors que l’utilisateur est autrement occupé par le jeu.

Interface utilisateur personnalisée

Bien que Windows Installer fournisse une interface utilisateur par défaut qui guide l’utilisateur tout au long de l’installation de l’application, cette interface ressemble à celle d’une application Windows standard. De nombreux développeurs de jeux préfèrent que leur interface utilisateur d’installation ait la même apparence que le jeu lui-même, pour donner à l’utilisateur un aperçu de l’ambiance du jeu. Pour ce faire, Windows Installer permet de désactiver complètement son interface utilisateur intégrée, ce qui permet au développeur de fournir une interface utilisateur entièrement personnalisée.

Le programme d’installation personnalisé désactive d’abord l’interface utilisateur intégrée de Windows Installer à l’aide de l’API MsiSetInternalUI pour définir le niveau d’interface utilisateur sur INSTALLUILEVEL_NONE. Il appelle ensuite l’API MsiSetExternalUI pour spécifier une fonction de rappel qui sera appelée pendant le processus d’installation pour notifier le programme d’installation des événements clés pendant l’installation.

Le processus d’installation réel est ensuite démarré en appelant l’API MsiInstallProduct . Cette API accepte une chaîne de paramètre qui permet à l’appelant de spécifier des valeurs pour les propriétés nommées. Ces propriétés peuvent être utilisées dans la base de données d’installation elle-même pour personnaliser la façon dont l’application doit être installée. Ces propriétés peuvent être utilisées pour spécifier :

  • Répertoire dans lequel l’application doit être installée
  • Quelles fonctionnalités doivent être installées localement et celles qui doivent être installées pour s’exécuter à partir du CD/DVD (par exemple, pour permettre le choix entre une installation minimale et une installation complète)
  • Indique si l’application doit être installée pour tous les utilisateurs de l’ordinateur ou pour l’utilisateur actuel uniquement

Au cours de l’installation, le programme d’installation utilise les messages de notification envoyés à sa fonction de rappel pour déterminer quand mettre à jour l’interface utilisateur de son indicateur de progression, quand inviter l’utilisateur à insérer le CD suivant ou quand notifier l’utilisateur d’une erreur dans le processus d’installation.

Application de correctifs

Windows Installer permet aux applications installées d’être corrigées en appliquant un fichier de correctif. Un fichier de correctif contient les nouveaux fichiers à ajouter par le correctif, les fichiers qui sont modifiés par le correctif et une liste des modifications à apporter à la base de données d’installation. Pour économiser de l’espace, au lieu de stocker le contenu complet d’un fichier modifié par le correctif, le fichier patch contient en fait uniquement les différences entre la version d’origine du fichier et la nouvelle version du fichier.

Pour créer un correctif, vous avez besoin de l’image d’installation de chacune des versions de l’application à partir de laquelle vous souhaitez effectuer la mise à niveau, ainsi que de l’image d’installation de la nouvelle version mise à niveau de l’application. Une image d’installation se compose de la base de données MSI et de tous les fichiers de données réels de l’application. La meilleure façon de créer une image d’installation pour une nouvelle version de l’application consiste à copier l’image d’installation de la version précédente de l’application, puis à apporter les modifications nécessaires pour mettre à jour cette copie vers la version corrigée.

Une fois que vous disposez de toutes les images d’installation nécessaires, vous pouvez créer les correctifs à l’aide de Msimsp.exe, qui est un outil de création de correctifs disponible dans le cadre du Kit de développement logiciel (SDK) de plateforme. L’outil demande les emplacements de chacune des images de configuration, puis détermine comment représenter efficacement les différences entre les versions successives. La sortie de l’outil est le fichier de correctif final (identifié par l’extension MSP). Pour installer le correctif par programme, appelez l’API MsiApplyPatch . L’utilisateur peut également installer le correctif manuellement en double-cliquant sur le fichier MSP dans Explorer.

Autres ressources