Share via


Inclusion d’un fichier d’armoire dans une installation

Cette section décrit l’inclusion des fichiers d’armoire dans les installations. Pour plus d’informations, consultez Utilisation d’armoires et de sources compressées.

Pour inclure un fichier d’armoire dans un package d’installation

  1. Utilisez un outil de création d’armoire pour compresser les fichiers sources dans un fichier d’armoire. Consultez Fichiers d’armoire.
  2. Le fichier d’armoire doit se trouver dans un flux de données à l’intérieur du fichier .msi ou dans un fichier d’armoire distinct situé à la racine de l’arborescence source spécifiée par la table Directory.
  3. Déterminez si la source doit être un type compressé ou un type mixte contenant à la fois des fichiers non compressés et compressés. Consultez Sources compressées et non compressées. En fonction du type d’image source, définissez les bits d’indicateur compressés ou non compressés de la propriété Word Count Summary.
  4. Ajoutez un enregistrement à la table File pour chacun des fichiers de l’armoire. Entrez une clé de fichier dans la colonne Fichier qui correspond exactement à la clé de fichier du fichier dans l’armoire. Les clés de fichier respectent la casse. La séquence d’installation du fichier dans la table Fichier et l’armoire doivent également être identiques. La séquence de fichiers est spécifiée par le numéro de séquence dans la colonne Séquence. Pour obtenir le numéro séquentiel du premier fichier dans l’armoire, procédez comme suit. Recherchez l’enregistrement existant dans la table Media ayant la valeur la plus élevée dans la colonne DiskID. Le champ LastSequence de cet enregistrement donne le dernier numéro séquentiel de fichier utilisé sur le média. Dans la table File, attribuez au premier fichier de la nouvelle armoire un numéro de séquence supérieur à celui-ci. Affectez des numéros de séquence à tous les fichiers restants dans le même ordre que dans le fichier d’armoire. Pour obtenir une description des champs d’enregistrement restants, consultez la table File.
  5. Ajoutez un enregistrement à la table Media pour l’armoire. Spécifiez dans le champ DiskID de ce nouvel enregistrement une valeur supérieure à la plus grande valeur DiskID déjà existante dans la table. Placez le nom de l’armoire dans le champ Cabinet. Ce nom doit être sous la forme d’un type de données Cabinet . Préfixez le nom par un signe numérique « # » si l’armoire est un flux de données stocké dans le fichier .msi. Notez que si l’armoire est un flux de données, son nom respecte la casse. Si l’armoire est un fichier distinct, le nom du fichier ne respecte pas la casse.
  6. Déterminez le numéro de séquence de fichier le plus élevé dans la nouvelle armoire en vérifiant la colonne Séquence de la table File mise à jour. Entrez une valeur supérieure à celle-ci dans le champ LastSequence du nouvel enregistrement de la table Media. Pour obtenir une description des champs d’enregistrement restants, consultez la table Media.
  7. Vous pouvez stocker le fichier d’armoire dans le package d’installation à l’aide d’un outil tel que Msidb.exe ou à l’aide des fonctions de base de données du programme d’installation. Les quatre étapes suivantes expliquent comment ajouter l’armoire à partir d’un programme à l’aide des fonctions de base de données.
  8. Pour ajouter l’armoire au package d’installation à partir d’un programme, ouvrez une vue sur la table _Streams de la base de données à l’aide de MsiDatabaseOpenView.
  9. Utilisez MsiRecordSetString pour définir la colonne Name de la table _Streams sur le nom apparaissant dans la colonne Cabinet de la table Media. Omettez le signe numérique : #.
  10. Utilisez MsiRecordSetStream pour définir la colonne Données de la table _Streams sur les données de l’armoire.
  11. Utilisez MsiViewModify pour mettre à jour l’enregistrement dans la table _Streams.
  12. Pour utiliser Msidb.exe pour ajouter le fichier d’armoire Mycab.cab au package d’installation nommé Mydatabase.msi, utilisez la ligne de commande suivante : Msidb.exe -d mydatabase.msi -a mycab.cab. Dans ce cas, la colonne Cabinet de la table Media doit contenir la chaîne : #mycab.cab.