Installation d’Assemblys Win32 pour l’Utilisation privée d’une application sur Windows XP
La procédure présentée dans cette rubrique identifie la manière de créer un package Windows Installer pour installer un assembly Win32. Le package installe l’assembly et un fichier manifeste de l’application dans un dossier créé que l’application utilise. Le manifeste de l’application spécifie la dépendance de l’application à l’assembly privé. Après avoir installé le package, l’assembly privé est disponible pour l’utilisation exclusive de l’application. La dépendance d’assembly spécifiée dans le manifeste de l’application remplace (pour cette application) toutes les autres dépendances d’assembly globales spécifiées dans les fichiers manifeste de l’assembly.
Avant de continuer, il est judicieux de comprendre comment créer un package Windows Installer sans assemblys. Pour plus d’informations, consultez Un exemple d’installation.
Pour installer un assembly privé sur Windows XP
- Définissez un composant Windows Installer qui inclut l’assembly Win32 et le fichier manifeste de l’application. Ce composant peut contenir d’autres ressources qui doivent toujours être installées ou supprimées avec l’assembly. Les étapes restantes de cette procédure décrivent comment créer la base de données d’installation pour installer ce composant.
- Ajoutez une ligne à la table Composant pour le composant qui contient l’assembly Win32 et le fichier manifeste de l’application. Entrez un GUID Windows Installer valide pour ce code de composant. Pour plus d’informations, consultez Modification du code de composant et Que se passe-t-il si les règles de composant sont enfreintes ?
- Le programme d’installation copie le fichier manifeste d’assembly dans le dossier qui contient le fichier spécifié dans le champ File_Application de la table MsiAssembly.
- Ajoutez une ligne à la table FeatureComponents qui lie le composant à une fonctionnalité Windows Installer. Pour plus d’informations, consultez Composants et fonctionnalités. Une fonctionnalité Windows Installer doit être un élément de la fonctionnalité d’application qu’un utilisateur peut reconnaître. L’assembly est activé lorsque cette fonctionnalité est sélectionnée par un utilisateur ou qu’une application a fait l’objet d’une erreur. Si l’assembly définit une fonctionnalité supplémentaire, ajoutez alors une ligne supplémentaire à la table Fonctionnalité pour les attributs de fonctionnalité. Cette étape n’est pas obligatoire si vous créez un module de fusion.
- Pour les assemblys côte à côte, les informations de liaison et d’activation, par exemple, les classes COM, les interfaces et les bibliothèques de types, sont stockées dans des fichiers manifeste plutôt que dans le registre. Les assemblys privés stockent ces informations dans un manifeste d’assembly. Sur les systèmes qui prennent en charge les assemblys côte à côte, le programme d’installation ignore le traitement des informations sur le composant entrées dans la table Extension, la table Verb, la table TypeLib, la table MIME, la table Class, la table ProgId et la table AppId. Les informations de liaison et d’activation peuvent être entrées dans les tables pour une utilisation par des systèmes qui ne prennent pas en charge le partage d’assemblys côte à côte.
- L’installation côte à côte n’inscrit pas l’assembly globalement. Le programme d’installation ignore l’inscription automatique du composant si des informations d’auto-inscription sont entrées dans la table SelfReg. Les informations d’inscription automatique peuvent être entrées dans la table SelfReg pour l’inscription automatique du composant sur les systèmes qui ne prennent pas en charge le partage d’assemblys côte à côte.
- Ajoutez toutes les autres informations de registre, à l’exclusion de la liaison et de l’activation ou de l’inscription automatique du composant, à la table Registre, à la table RemoveRegistry et à la table Environnement.
- Le programme d’installation ignore la table IsolatedComponent pour ce composant sur les systèmes d’exploitation qui prennent en charge le partage côte à côte. Entrez des informations dans cette table si vous souhaitez que l’assembly soit privé sur les systèmes qui prennent en charge les fichiers locaux.
- Ajoutez une ligne à la table MsiAssembly pour le composant qui contient l’assembly Win32. Entrez la valeur 1 dans le champ Attributs de la table MsiAssembly pour spécifier qu’il s’agit d’un assembly Win32. Entrez la clé de fichier de l’assembly privé dans le champ File_Application de la table MsiAssembly. Ajoutez l’action MsiPublishAssemblies à la table InstallExecuteSequence ou à la table AdvtExecuteSequence. Ajoutez l’action MsiUnpublishAssemblies à la table InstallExecuteSequence. Créez un dossier pour l’assembly et le fichier manifeste dans la table Répertoire. Ce dossier doit se trouver dans le répertoire racine de l’application et contenir le fichier spécifié dans le champ File_Application de la table MsiAssembly. Pendant l’installation de l’application, le programme d’installation résout la table Répertoire pour le chemin d’accès à ce dossier. Pour plus d’informations, consultez Utilisation de la table Répertoire.
- Ajoutez des lignes à la table MsiAssemblyName pour le composant. Ajoutez une ligne pour chaque paire de nom et de valeur spécifiée dans la section assemblyIdentity du manifeste. Pour plus d’informations, consultez la table MsiAssemblyName.