Utilisation de la table Directory

La table Directory spécifie la disposition d’une installation. Lorsque les répertoires sont résolus pendant l’action CostFinalize, les clés de la table Directory deviennent des propriétés définies sur les chemins d’accès au répertoire. Notez que le programme d’installation définit un certain nombre de propriétés standard sur les chemins d’accès aux dossiers système. Consultez la référence de propriété pour obtenir la liste des propriétés définies sur les dossiers système.

La meilleure façon de spécifier l’emplacement cible d’un répertoire consiste à créer la table Directory dans votre package d’installation pour fournir l’emplacement approprié, comme indiqué dans cette section. S’il est nécessaire de modifier l’emplacement du répertoire au moment de l’installation, consultez également la section : Modification de l’emplacement cible d’un répertoire

Ce qui suit est un exemple d’une table Directory.

Répertoire Directory_Parent DefaultDir
TARGETDIR SourceDir
EXEDIR TARGETDIR Application
DLLDIR EXEDIR Compartiment
DesktopFolder TARGETDIR Desktop (Expérience utilisateur)

 

Chaque ligne de la table Directory indique un répertoire à la fois au niveau de la source et de la cible. Par exemple, supposons que le package d’installation réside dans \\applications\source\. Étant donné que le champ Directory_Parent de la première ligne est Null, cet enregistrement indique les répertoires racine pour la source et la cible. Pour la source, la valeur de ce répertoire est donnée par le champ DefaultDir. La propriété SourceDir est définie par défaut sur l’emplacement du package d’installation. Ainsi, à moins que la propriété SourceDir ne soit remplacée, le répertoire source racine est \\applications\source\.

Le champ Directory du premier enregistrement indique l’emplacement du répertoire cible racine. Dans ce cas, la valeur de la propriété TARGETDIR indique ce répertoire. Notez que la valeur de la propriété TARGETDIR est généralement définie sur la ligne de commande ou via une interface utilisateur. Dans ce cas, supposons que la propriété TARGETDIR soit définie sur C:\Program Files\Target\.

Pour le deuxième enregistrement, le champ Directory_Parent n’est pas Null. Par conséquent, cet enregistrement indique un répertoire non racine pour la source et la cible. Pour un répertoire source non racine, le répertoire source indiqué par l’enregistrement décrit dans le champ Directory_Parent est le répertoire parent. Pour le deuxième enregistrement, le champ Directory_Parent est TARGETDIR. Comme indiqué précédemment, le répertoire source indiqué par l’enregistrement TARGETDIR se résout en \applications\source\. Ainsi, le répertoire source indiqué par le deuxième enregistrement est \\applications\source\App\.

Un processus similaire fonctionne pour le répertoire cible. La valeur du répertoire parent pour le répertoire cible décrit dans le deuxième enregistrement est le répertoire cible résolu par le champ Directory_Parent. De nouveau, le champ Directory_Parent contient la valeur TARGETDIR. Cela indique le premier enregistrement qui est résolu en un répertoire cible de C:\Program Files\Target\. Le champ Directory contient une propriété définie par l’auteur appelée EXEDIR. Si cette propriété est définie, sa valeur donne le chemin d’accès complet du répertoire. Par conséquent, si cette propriété est définie sur C:\Data\Common\, la valeur du répertoire cible indiqué par le deuxième enregistrement est C:\Data\Common\. S’il n’est pas défini, le répertoire cible prend le nom donné par le champ DefaultDir. Dans ce cas, le répertoire cible est C:\Program Files\Target\App\.

Le même processus fonctionne pour le troisième enregistrement. Si EXEDIR et DLLDIR ne sont pas définis, le répertoire cible est C:\Program Files\Target\App\Bin, et le répertoire source est \\applications\source\App\Bin\.

Le quatrième enregistrement utilise la propriété DesktopFolder . Si l’emplacement du bureau de l’utilisateur est C:\Winnt\Profiles\User\Desktop\, le répertoire cible est résolu en C:\Winnt\Profiles\User\Desktop\. Le répertoire source est résolu en \\applications\source\Desktop\.

Il existe deux fonctionnalités de syntaxe supplémentaires qui peuvent être utilisées dans la colonne DefaultDir de la table Directory. Pour un répertoire source non racine, un point (.) entré dans la colonne DefaultDir indique que le répertoire doit se trouver dans son répertoire parent sans sous-répertoire. Pour spécifier différents chemins d’accès aux répertoires source et cible, séparez les chemins d’accès cible et source dans la colonne DefaultDir par un signe deux-points comme suit : [targetpath]:[sourcepath]. Ces fonctionnalités peuvent être utilisées ensemble pour ajouter des niveaux aux chemins d’accès source ou cible d’un répertoire unique. Consultez l’exemple suivant d’une table Directory.

Répertoire Directory_Parent DefaultDir
TARGETDIR SourceDir
MyAppDir TARGETDIR MyApp
BinDir MyAppDir Compartiment
Binx86Dir BinDir .:x86
BinAlphaDir BinDir .:Alpha

 

Les chemins d’accès source et cible sont résolus pour les lignes MyAppDir, BinDir, Binx86Dir et BinAlphaDir comme suit.

Enregistrement Chemins d’accès cibles Chemins source
MyAppDir: [TARGETDIR]MyApp [SourceDir]MyApp
BinDir: [TARGETDIR]MyApp\Bin [SourceDir]MyApp\Bin
Binx86Dir: [TARGETDIR]MyApp\Bin [SourceDir]MyApp\Bin\x86
BinAlphaDir: [TARGETDIR]MyApp\Bin [SourceDir]MyApp\Bin\Alpha

 

Notes

La plateforme Alpha n’est pas prise en charge par Windows Installer.