Ajout de composants requis personnalisés

Mise à jour : novembre 2007

Le programme d'amorçage est un programme d'installation générique qui peut être configuré pour démarrer presque tout redistribuable empaqueté en tant que fichier Windows Installer ou programme exécutable. Il est programmé par le biais d'un jeu de manifestes XML simples qui spécifient toutes les métadonnées requises pour le programme d'amorçage afin de gérer l'installation du composant. Le programme d'amorçage ne spécifie pas la technologie que le programme d'installation de l'application doit utiliser (Windows Installer ou ClickOnce).

Lorsqu'un utilisateur lance Setup.exe, il détecte d'abord si certains composants requis sont déjà installés. Si certains composants requis sont absents, le programme d'amorçage affiche une boîte de dialogue d'installation qui répertorie ces composants et fournit leur contrat de licence. En revanche, si tous les composants requis sont détectés, le programme d'amorçage lance simplement le programme d'installation de l'application.

Lorsque l'utilisateur accepte le contrat, la procédure de téléchargement et d'installation commence. Lorsque tous les composants requis sont installés, le programme d'amorçage lance la procédure d'installation de l'application proprement dite.

Création de packages personnalisés

Dans certains cas, il se peut que vous ne deviez pas créer de package pour votre redistribuable. En général, vous ne devez créer des packages que pour les composants partagés ou système qui doivent installer des fichiers dans le GAC, exécuter une inscription globale ou constituer un service Windows.

Il est conseillé de demander au fournisseur de contrôle si vous pouvez expédier le fichier redistribuable avec l'application. S'il suffirait d'une simple opération de copie pour redistribuer le composant requis (par exemple, en l'absence de dépendances), vous ne devez pas créer de package. Vérifiez simplement que le fichier est inclus dans l'installation ou qu'il a la valeur Copie locale. (La propriété Copy du fichier dans l'affichage des Propriétés doit avoir la valeur True.)

Vous devez également déterminer s'il est nécessaire d'utiliser un programme d'installation. Si c'est le cas, utilisez un package de programme d'amorçage.

Pour créer un nouveau package de composant, vous devez fournir :

  • le composant redistribuable sous la forme d'un fichier EXE ou MSI.

  • le manifeste du produit (product.xml) qui contient toutes les métadonnées indépendantes de la langue pour le package. Cela comprend les métadonnées communes à toutes les versions traduites du composant redistribuable.

  • le manifeste du package (package.xml) qui contient les métadonnées spécifiques à la langue ; il contient généralement des messages d'erreur traduits. Un composant doit posséder au moins un manifeste de package pour chaque version traduite de ce composant.

Vous devez créer manuellement les fichiers manifeste, et les métadonnées qu'ils contiennent doivent adhérer à un schéma spécifique, comme décrit par les éléments du schéma de package inclus dans le Kit de développement logiciel (SDK) Windows. Pour obtenir la référence du schéma, consultez Référence du schéma de produit et de package. Le générateur de programme d'installation intégré à Visual Studio validera les fichiers manifeste au moment de la création.

Pour spécifier les dépendances entre les packages dans ces manifestes, utilisez l'élément de schéma DependsOnProduct.

Vous devez ensuite copier les fichiers manifeste du produit et du package, ainsi que vos fichiers redistribuables, dans un dossier spécial que Visual Studio a réservé aux packages redistribuables :

\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages

Pour écrire un programme d'installation qui copie un composant redistribuable et ses manifestes dans ce dossier, vous pouvez déterminer par programme l'emplacement du dossier du programme d'amorçage à partir de la valeur Chemin dans la clé de Registre suivante.

HKLM\Software\Microsoft\GenericBootstrapper\3.5

Chaque composant redistribuable apparaît dans son propre sous-dossier sous le répertoire des packages. Les fichiers manifeste et redistribuables du produit sont ensuite placés dans ce sous-dossier. Les versions traduites du composant, ainsi que les manifestes du package, sont placés dans les sous-dossiers nommés selon leur nom de culture (voir le tableau dans CultureInfo.).

Une fois ces fichiers copiés dans le dossier du programme d'amorçage, ils s'affichent automatiquement dans la boîte de dialogue des composants requis de Visual Studio afin que le développeur puisse les sélectionner en activant une case à cocher.

Pour plus d'informations sur l'utilisation d'un programme d'amorçage pour configurer votre installation, consultez l'article MSDN Use the Visual Studio 2005 Bootstrapper to Kick-Start Your Installation.

Maintien de la séparation entre les redistribuables du package du programme d'amorçage et les installations des applications

En règle générale, vous devez conserver tous les composants faisant partie d'un redistribuable du package du programme d'amorçage à l'écart des applications qui les utilisent. Par exemple, supposons que vous possédiez un package de programme d'amorçage nommé Acme.DataWidgets.msi qui contient le composant Acme.DataWidgets.dll. Ce dernier ne doit pas apparaître dans le répertoire bindir du projet au moment du développement et ne doit pas être déployé dans le package du programme d'installation de l'application.

Par conséquent, il est recommandé d'installer les composants du programme d'amorçage dans le GAC de vos ordinateurs de développement, idéalement à l'aide du même programme d'installation redistribuable du package du programme d'amorçage principal. Cela empêchera la copie des composants du programme d'amorçage vers le répertoire bindir du projet au moment du développement. En outre, nous vous conseillons de définir un fichier RedistList pour décrire tous les assemblys qui font partie du package redistribuable du programme d'amorçage. Cela empêchera l'inclusion des composants du programme d'amorçage dans tout projet de déploiement d'application. Le fichier RedistList ne doit être installé que sur les ordinateurs de développeur.

Dans ce but, créez une liste de redistribuables dans le dossier RedistList contenu dans votre répertoire .NET Framework (\WINDOWS\Microsoft.NET\Framework).

La liste de redistribuables est un fichier XML que vous devez nommer au format suivant : nom_société + nom_composant + RedistList.xml. Par exemple, si le composant est appelé « Datawidgets » et a été créé par « Acme », utilisez Acme.DataWidgets.RedistList.xml. Voici un exemple de contenu d'une liste de redistribuables :

<?xml version="1.0" encoding="UTF-8"?>
<FileList Redist="Acme.DataWidgets" >
<File AssemblyName="Acme.DataGrid" Version="1.0.0.0" PublicKeyToken="b03f5f7f11d50a3a" Culture="neutral" ProcessorArchitecture="MSIL" InGAC="true" />
</FileList>

Ajout de packages à la boîte de dialogue Composants requis

La Composants requis, boîte de dialogue vous permet de sélectionner les composants dont votre application a besoin avant l'installation. Visual Studio comprend plusieurs composants requis standard. Toutefois, vous pouvez ajouter d'autres composants Microsoft ou tiers comme composants requis. Dans ce but, vous devez créer les manifestes du produit et du package comme décrit ci-dessus.

Dans la boîte de dialogue Composants requis, la liste Choisir les composants requis à installer affiche les packages de composants requis qui peuvent être installés. L'ordre des packages dans cette liste est basé sur les dépendances spécifiées dans les manifestes et indique l'ordre dans lequel les packages seront installés.

Lorsque vous avez ajouté un package générique au programme d'amorçage, il s'affiche dans la boîte de dialogue Composants requis en tant que MyPackage. Visual Studio ne choisit pas automatiquement les packages à installer.

Pour les projets ClickOnce, Visual Studio recommande d'inclure le .NET Framework pour tous les types de projet en activant par défaut la case à cocher .NET Framework dans Choisir les composants requis à installer.

Pour les projets Windows Installer, si le projet actuel est un projet d'installation ou d'installation Web, la case à cocher .NET Framework est sélectionnée par défaut. Si, au moment de la génération, ni le package .NET Framework ni le package Windows Installer ne sont sélectionnés, un avertissement de génération est émis.

Voir aussi

Tâches

Comment : installer les composants requis avec une application ClickOnce

Concepts

Déploiement des composants requis (Visual Studio)

Référence

Composants requis, boîte de dialogue

Référence du schéma de produit et de package

Autres ressources

https://msdn.microsoft.com/msdnmag/issues/04/10/Bootstrapper/