Partager via


Fichiers de description de répertoire de modèles (.Vsdir)

Un fichier de description du répertoire de modèles (.vsdir) est un fichier texte qui permet à l’environnement de développement intégré (IDE) d’afficher des dossiers, des fichiers .vsz de l’Assistant et des fichiers de modèle associés à votre projet dans les boîtes de dialogue. Le contenu inclut un enregistrement par fichier ou dossier. Tous les fichiers .vsdir dans un emplacement référencé sont fusionnés, bien qu’un seul fichier .vsdir soit généralement fourni pour décrire plusieurs dossiers, assistants ou fichiers de modèle.

Les dossiers (sous-répertoires), les fichiers référencés dans le fichier .vsdir et le fichier .vsdir lui-même se trouvent tous dans le même répertoire. Lorsque l’IDE exécute un Assistant ou affiche un dossier ou un fichier dans les boîtes de dialogue Nouveau projet ou Ajouter un nouvel élément , l’IDE examine le répertoire qui contient les fichiers exécutés pour déterminer si un fichier .vsdir est présent. Si un fichier .vsdir est trouvé, l’IDE le lit pour déterminer s’il contient une entrée pour le dossier ou le fichier exécuté ou affiché. Si une entrée est trouvée, l’IDE utilise les informations dans l’exécution de l’Assistant ou l’affichage du contenu.

L’exemple de code suivant provient du fichier SourceFiles.vsdir dans la <clé de Registre EnvSDK>\BscPrj\BscPrj\BscPrjProjectItems\Source_Files :

HeaderFile.h|{E59935A1-6156-11d1-87A6-00A0C91E2A46}|#125|130|#126|0|0|0|#127
SourceFile.cpp|{E59935A1-6156-11d1-87A6-00A0C91E2A46}|#122|110|#123|0|0|0|#124

Dans ce cas, deux enregistrements se trouvent dans un fichier. Une nouvelle ligne (caractère de retour chariot) sépare chaque enregistrement. Chaque ligne représente un type de fichier différent. Un caractère de canal (|) sépare les champs de chaque enregistrement. Un répertoire unique peut contenir plusieurs fichiers .vsdir qui ont des noms de fichiers différents, ou vous pouvez avoir un fichier .vsdir pour chaque type de fichier.

Champs

Le tableau suivant répertorie les champs spécifiés pour chaque enregistrement.

Champ Description
Nom du chemin relatif (RelPathName) Nom du dossier, du modèle ou du fichier .vsz, tel que HeaderFile.h ou MyWizard.vsz. Ce champ peut également être un nom utilisé pour représenter un dossier.
{clsidPackage} GUID du VSPackage qui permet d’accéder à des chaînes localisées, telles que LocalizedName, Description, IconResourceId et SuggestedBaseName, dans les ressources de la bibliothèque de liens dynamiques satellite (DLL) de VSPackage. IconResourceId s’applique si DLLPath n’est pas fourni. Remarque : ce champ est facultatif, sauf si un ou plusieurs des champs précédents sont un identificateur de ressource. Ce champ est généralement vide pour les fichiers .vsdir qui correspondent à des Assistants tiers qui ne localisent pas leur texte.
LocalizedName Nom localisé du fichier de modèle ou de l’Assistant. Ce champ peut être une chaîne ou un identificateur de ressource du formulaire « #ResID ». Ce nom s’affiche dans la boîte de dialogue Ajouter un nouvel élément . Remarque : Si LocalizedName est un identificateur de ressource, {clsidPackage} est requis.
SortPriority Entier représentant la priorité relative de ce fichier de modèle ou de cet Assistant. Par exemple, si cet élément a la valeur 1, cet élément s’affiche en regard d’autres éléments dont la valeur est 1 et devant tous les éléments avec une valeur de tri de 2 ou plus.

La priorité de tri est relative aux éléments du même répertoire. Il peut y avoir plusieurs fichiers .vsdir dans le même répertoire. Dans ce cas, les éléments de tous .Les fichiers vsdir de ce répertoire sont fusionnés. Les éléments ayant la même priorité sont répertoriés dans l’ordre lexicographique respectant la casse du nom affiché. La _wcsicmp fonction est utilisée pour classer les éléments.

Les éléments non décrits dans les fichiers .vsdir incluent un nombre de priorité supérieur au nombre de priorité le plus élevé répertorié dans les fichiers .vsdir. Le résultat est que ces éléments se trouvent à la fin de la liste affichée, quel que soit leur nom.
Description Description localisée du fichier de modèle ou de l’Assistant. Ce champ peut être une chaîne ou un identificateur de ressource du formulaire « #ResID ». Cette chaîne apparaît dans la boîte de dialogue Nouveau projet ou Ajouter un nouvel élément lorsque l’élément est sélectionné.
DLLPath ou {clsidPackage} Utilisé pour charger une icône pour le fichier de modèle ou l’Assistant. L’icône est chargée en tant que ressource hors d’un fichier .dll ou .exe à l’aide de IconResourceId. Ce fichier .dll ou .exe peut être identifié à l’aide d’un chemin d’accès complet ou à l’aide d’un GUID d’un VSPackage. La DLL d’implémentation du VSPackage est utilisée pour charger l’icône (et non la DLL satellite).
IconResourceId Identificateur de ressource dans la DLL ou la DLL d’implémentation VSPackage qui détermine l’icône à afficher.
Indicateurs (__VSDIRFLAGS) Permet de désactiver ou d’activer les champs Nom et Emplacement dans la boîte de dialogue Ajouter un nouvel élément . La valeur du champ Indicateurs est l’équivalent décimal de la combinaison d’indicateurs de bits requis.

Lorsqu’un utilisateur sélectionne un élément sous l’onglet Nouveau , le projet détermine si le champ Nom et le champ Emplacement sont affichés lorsque la boîte de dialogue Ajouter un nouvel élément s’affiche pour la première fois. Un élément, via un fichier .vsdir, peut contrôler uniquement si les champs sont activés ou désactivés lorsque l’élément est sélectionné.
SuggestedBaseName Représente le nom par défaut du fichier, de l’Assistant ou du modèle. Ce champ est une chaîne ou un identificateur de ressource du formulaire « #ResID ». L’IDE utilise cette valeur pour fournir un nom par défaut pour l’élément. Cette valeur de base est ajoutée avec une valeur entière pour rendre le nom unique, tel que MyFile21.asp.

Dans la liste précédente, Description, DLLPath, IconResourceId, Flags et SuggestedBaseNumber s’appliquent uniquement aux fichiers de modèle et d’Assistant. Ces champs ne s’appliquent pas aux dossiers. Ce fait est illustré dans le code du fichier BscPrjProjectItems dans la <clé de Registre EnvSDK>\BscPrj\BscPrj\BscPrj\BscPrjProjectItems. Ce fichier contient trois enregistrements (un pour chaque dossier) avec quatre champs pour chaque enregistrement : RelPathName, {clsidPackage}, LocalizedName et SortPriority.

General&#124;{E59935A1-6156-11d1-87A6-00A0C91E2A46}&#124;#110&#124;100

Source_Files&#124;{E59935A1-6156-11d1-87A6-00A0C91E2A46}&#124;#111&#124;110

Env&#124;{E59935A1-6156-11d1-87A6-00A0C91E2A46}&#124;#112&#124;120

Lorsque vous créez un fichier d’Assistant, vous devez également prendre en compte les problèmes suivants.

  • Tout champ non obligatoire pour lequel aucune donnée significative ne doit contenir de 0 (zéro) en tant qu’espace réservé.

  • Si aucun nom localisé n’est fourni, le nom du chemin d’accès relatif est utilisé dans le fichier de l’Assistant.

  • DLLPath remplace clsidPackage pour l’emplacement de l’icône.

  • Si aucune icône n’est définie, l’IDE remplace l’icône par défaut d’un fichier qui a cette extension.

  • Si aucun nom de base suggéré n’est fourni, « Project » est utilisé.

  • Si vous supprimez les fichiers, dossiers ou fichiers de modèle .vsz, vous devez également supprimer leurs enregistrements associés du fichier .vsdir.