Inclusion d’un fichier CAB dans une installation

Cette rubrique décrit l’inclusion de fichiers CAB dans les installations. Pour plus d’informations, consultez la rubrique « Utilisation de fichiers CAB et de sources compressées ».

Pour ajouter un fichier CAB à un package d’installation

  1. Utilisez un outil de création de fichiers CAB pour compresser les fichiers sources dans un fichier CAB. Voir « Fichiers CAB ».
  2. Le fichier CAB doit se trouver dans un flux de données à l’intérieur du fichier .msi ou dans un fichier CAB distinct situé à la racine de l’arborescence source spécifiée par la table Répertoire.
  3. Déterminez si la source doit être un type compressé ou un type mixte comprenant à la fois des fichiers non compressés et compressés. Consultez la rubrique « Sources compressées et non compressées ». Selon le type d’image source, définissez les bits d’indicateur compressés ou non compressés de la propriété Résumé du nombre de mots.
  4. Ajoutez un enregistrement à la table Fichier pour chacun des fichiers du fichier CAB. Entrez une clé de fichier dans la colonne « Fichier » qui correspond exactement à la clé de fichier du fichier dans le fichier CAB. Les clés de fichiers sont sensibles à la casse. La séquence d’installation de fichier dans la table Fichier et le fichier CAB doivent également être identiques. La séquence de fichiers est indiquée par le numéro de séquence dans la colonne « Séquence ». Pour arriver au numéro de séquence du premier fichier dans le fichier CAB, procédez comme suit : Recherchez l’enregistrement existant dans la table Média ayant la plus grande valeur dans la colonne « DiskID ». Le champ LastSequence de cet enregistrement donne le dernier numéro de séquence de fichiers utilisé sur le média. Dans la table Fichier, affectez au premier fichier du nouveau fichier CAB un numéro de séquence supérieur à celui-ci. Attribuez des numéros de séquence à tous les fichiers restants dans le même ordre que dans le fichier CAB. Pour obtenir une description des champs d’enregistrement restants, consultez la table Fichier.
  5. Ajoutez un enregistrement à la table Média pour le fichier CAB. Indiquez une valeur dans le champ « DiskID » de ce nouvel enregistrement supérieur à la plus grande valeur DiskID déjà existante dans la table. Saisissez le nom du fichier CAB dans le champ « CAB ». Ce nom doit être sous la forme d’un type de données CAB. Préfixez le nom avec un signe numérique « # » si le fichier CAB est un flux de données stocké dans le fichier .msi. Remarque : si le fichier CAB est un flux de données, le nom du fichier CAB respecte la casse. Si le fichier CAB est un fichier distinct, le nom du fichier ne respecte pas la casse.
  6. Déterminez le plus grand nombre de séquences de fichiers dans le nouveau fichier CAB en vérifiant la colonne « Séquence » de la table Fichier mise à jour. Entrez une valeur supérieure à celle-ci dans le champ « LastSequence » du nouvel enregistrement de la table Média. Pour obtenir une description des champs d’enregistrement restants, consultez la table Média.
  7. Vous pouvez stocker le fichier CAB 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 le fichier CAB à partir d’un programme à l’aide des fonctions de base de données.
  8. Pour ajouter le fichier CAB au package d’installation à partir d’un programme, ouvrez une vue sur la table _Flux de la base de données en utilisant MsiDatabaseOpenView.
  9. Utilisez MsiRecordSetString pour définir la colonne « Nom » de la table _Flux sur le nom figurant dans la colonne « CAB » de la table Média. Omettez le signe numérique : #.
  10. Utilisez MsiRecordSetStream pour définir la colonne « Données » de la table _Flux sur les données du fichier CAB.
  11. Utilisez MsiViewModify pour mettre à jour l’enregistrement dans la table _Flux.
  12. Pour utiliser Msidb.exe pour ajouter le fichier CAB 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 « Fichier CAB » de la table Média doit contenir la chaîne : #mycab.cab.