Partager via


Windows Installer pour les développeurs de jeux

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

Microsoft Windows Installer est l’API préférée pour installer des 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 des ordinateurs finaux. Les principaux avantages de l’utilisation de Windows Installer pour l’installation de jeu 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 au Kit de développement logiciel (SDK) de plateforme Windows.

Aperçu

Toutes les configurations windows Installer utilisent un fichier de base de données d’installation appelé fichier MSI pour décrire comment 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 sous forme de 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 via le processus d’installation. Cette interface utilisateur convient à la plupart des applications. Toutefois, il a l’apparence d’une application Windows régulière, 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 de configuration 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 générer une base de données MSI contenant le package d’installation, qui peut ensuite être installé à 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 le SDK de plateforme Windows inclut un outil d’édition de base de données MSI nu appelé Orca.

Concepts clés de Windows Installer

Voici les composants et fonctionnalités de Windows Installer.

Composants

Une application est constituée d’un ou plusieurs composants, identifiés par un ID de composant GUID. Un composant est une unité atomique ; elle est entièrement installée ou n’est pas installée du tout. Un composant peut se composer d’un seul fichier, de plusieurs fichiers, de clés de Registre, de raccourcis de bureau ou d’une combinaison de celles-ci. Les ressources (fichiers, et ainsi de suite) au sein d’un composant doivent être uniques à ce composant- aucun des deux composants ne peut contenir la même ressource. Un composant n’est jamais installé explicitement ; il est installé 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ée uniquement lorsque toutes les fonctionnalités qui référencent le 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 elle peut être effectuée manuellement à l’aide de l’API MsiConfigureFeature.

Bien que quelques jeux aient 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 de plus qu’une collection de composants qui peuvent être installés ensemble, les jeux peuvent utiliser des fonctionnalités pour regrouper tous les contenus nécessaires à une phase particulière du jeu. Par exemple, un jeu orienté niveau peut définir une fonctionnalité par niveau, composée de tout le contenu requis pour ce niveau. Cela permettrait au jeu d’installer le contenu d’un niveau à la fois à partir du jeu lui-même, plutôt que d’installer tout le contenu pour tous les niveaux pendant 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ù sont installés les fichiers du composant ou de la fonctionnalité. 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 média source d’origine (généralement un CD ou un DVD).

publiées

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 s’affiche sous la forme « 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 est disponible pour l’installation 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 Install on Demand 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 nécessaire 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, tandis que l’utilisateur est autrement occupé par le jeu.

Interface utilisateur personnalisée

Bien que Windows Installer fournit une interface utilisateur par défaut qui guide l’utilisateur via 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 goût de l’ambiance du jeu. Pour ce faire, Windows Installer permet à son interface utilisateur intégrée d’être complètement désactivé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’APIMsiInstallProduct. 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 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 l’indicateur de progression, quand inviter l’utilisateur à insérer le CD suivant ou quand avertir l’utilisateur d’une erreur dans le processus d’installation.

Rapiéçage

Windows Installer permet aux applications installées d’être corrigées en appliquant un fichier correctif. Un fichier de correctif contient les nouveaux fichiers à ajouter par le correctif, les fichiers modifiés par le correctif et une liste de 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 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 de configuration pour chacune des versions de l’application à partir de laquelle vous souhaitez mettre à niveau le correctif, ainsi que de l’image de configuration pour 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 de configuration pour une nouvelle version de l’application consiste à copier l’image d’installation à partir de la version précédente de l’application, puis à apporter toutes 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 d’installation, puis détermine comment représenter efficacement les différences entre les versions successives. La sortie de l’outil est le fichier correctif final (identifié par le MSP de l’extension). Pour installer le correctif par programmation, appelez l’API MsiApplyPatch. L’utilisateur peut également installer le correctif manuellement en double-cliquant sur le fichier MSP dans l’Explorateur.

Autres ressources