Visualiser des dépendances de code sur les graphiques de dépendance

Pour visualiser et à comprendre l'organisation de votre code et de ses dépendances, vous pouvez créer des graphiques de dépendance dans Visual Studio final.Quels sont les graphiques de dépendance et comment elles sont utiles ?

Projets pris en charge :

  • .NET De projets visual C# et Visual Basic .NET, y compris les applications de mémoire windows, et fichiers d'assembly (.dll ou .exe).

  • Projets Visual C++, y compris les applications de mémoire windows, qui ont le code C ou C++ (managé ou natif), les fichiers d'en-tête (.h ou #include), et les fichiers binaires.

Vidéos :

Dans cette rubrique

  • Comment est-ce-que j'obtiens démarré ?

  • Consulter les dépendances dans votre code

  • Graphiques de dépendance de partage

  • Générer des graphiques pour le traitement par lots

  • Dépannage

Comment est-ce-que j'obtiens démarré ?

  • Obtenir une vue d'ensemble de votre solution: Dans le menu Architecture , choisissez Générer un graphique de dépendance, Pour la solution.

    Vous obtenez un graphique qui affiche les assemblys de niveau supérieur.Vous pouvez maintenant explorer ces assemblys en développant les.Déplacez le pointeur de la souris sur un assembly, puis sélectionnez le bouton en forme de chevron (^) lorsqu'il apparaît.Effectuez la même opération pour les espaces de noms, types, des membres continuent d'explorer votre code.

    Graphique de dépendance de niveau supérieur des assemblys

    Pour afficher les dépendances entre groupes, choisissez un élément sur le graphique.

    Graphique avec des éléments sélectionnés et des groupes développés

    Pour plus d'informations, consultez l' Obtenir une vue d'ensemble de votre solution.Vous pouvez également exécuter des analyseurs pour rechercher des problèmes potentiels dans votre code.Consultez Rechercher des problèmes potentiels dans le code des graphiques de dépendance.

  • Affichez les dépendances spécifiques dans votre solution: dans Explorateur de solutions, éléments choisis qui vous intéressent.Vous pouvez sélectionner des projets, des références d'assembly, les dossiers, les fichiers, les types, et leurs membres.Pour rechercher un élément spécifique, utilisez la zone de recherche Explorateur de solutions .

    Dans la barre d'outils Explorateur de solutions , choisissez Créez un document de graphiqueCréer un graphique à partir du bouton Nœuds sélectionnés.

    - ou -

    Faites glisser les éléments Explorateur de solutions à un graphique existant.

    ConseilConseil

    Pour créer un graphique vide, dans le menu Fichier , choisissez Nouveau, Fichier, Document de graphique orienté.Pour comprendre la hiérarchie parente pour vos éléments, maintenez enfoncée la touche CTRL pendant que vous faites glisser des éléments.

    Vous obtenez un graphique qui affiche les éléments sélectionnés.Vous pouvez maintenant explorer ces éléments en développant les.Déplacez le pointeur de la souris sur un élément, puis sélectionnez le bouton en forme de chevron (^) lorsqu'il apparaît.

    Pour plus d'informations, consultez l' Affichez les dépendances spécifiques dans votre solution.Vous pouvez également exécuter des analyseurs pour rechercher des problèmes potentiels dans votre code.Consultez Rechercher des problèmes potentiels dans le code des graphiques de dépendance.

Quels sont les graphiques de dépendance et comment elles sont utiles ?

Les graphiques de dépendance offrent un moyen visuelle pour examiné le code et de comprendre ses dépendances sans devoir examiner des fichiers et des lignes de code.Vous pouvez consulter des éléments et des relations comme uniquement les nœuds et liens, ou des flèches.Par exemple, supposez que vous avez une révision du code à exécuter.Vous avez un jeu de fichiers qui contiennent des modifications en attente.Vous pouvez visualiser le code et les dépendances pour ces modifications en créant un graphique de dépendance à partir de ces fichiers.Consultez l' Affichez les dépendances spécifiques dans votre solution.

Par défaut, les relations de conteneur sont représentées sous forme de groupes, que vous pouvez développer et réduire.

Graphique de dépendance avec des nœuds regroupés

ConseilConseil

Le bouton Icône Récupérer à nouveau les enfantsRécupérer à nouveau les enfants vous permet de récupérer les membres du groupe qui existent dans le code mais n'apparaît pas sur le graphique.Nous avons également appliquer un style différent des liens d'appels vous pouvez le voir plus facilement.Consultez Modifier et personnaliser des graphiques de dépendance.

Vous pouvez également afficher des relations de conteneur comme liens.Ouvrez le menu contextuel du graphique, choisissez Groupe, Activer le regroupement:

Graphique de dépendance avec des nœuds et des liens

Vous pouvez également exécuter des analyseurs pour rechercher des problèmes potentiels dans votre code.Consultez Rechercher des problèmes potentiels dans le code des graphiques de dépendance.

Lorsque vous générez un graphique de dépendance la première fois, Visual Studio clés toutes les dépendances qu'il recherche.Ce processus peut prendre un certain temps, particulièrement pour les grands solutions ou graphiques avec de nombreux liens.Toutefois, l'index améliore les performances des opérations ultérieures.Si les modifications du code, Visual Studio réindexe uniquement le code mis à jour.

Si vous ne souhaitez pas attendre le graphique pour terminer la génération, vous pouvez annuler cette étape à tout moment et essayer les suggestions suivantes :

  • Graphique uniquement les dépendances qui vous intéressent.

  • Avant de générer le graphique pour une solution entière, réduisez la portée de la solution.

Bien que Visual Studio puisse fonctionner avec 1 go de mémoire, nous avons recommandé que votre ordinateur ont au moins 2 go de mémoire pour éviter les longues attend pendant que Visual Studio crée l'index de code et génère le graphique.

[!REMARQUE]

Visual Studio génère un graphique si au moins un projet est correctement généré.Il affiche uniquement les dépendances du code qui est correctement généré.Si des erreurs de build se produisent pour certains composants, les erreurs pour ces composants s'affichent sur le graphique.Assurez -vous que les builds d'un composant réellement et avez des dépendances sur avant de prenniez des décisions architecturales basées sur le graphique.

Cela peut prendre plus de temps pour créer des graphiques ou d'ajouter des éléments à un graphique de l'explorateur de solutions lorsque la propriété de Copier dans le répertoire de sortie d'un élément de projet est définie à Toujours copier.Cela peut rendre régénérer des problèmes avec les générations incrémentielles et Visual Studio le projet à chaque fois.Pour améliorer les performances, remplacez la propriété par Copier si plus récent ou PreserveNewest.Consultez Builds incrémentielles.

Consulter les dépendances dans votre code

  • Obtenir une vue d'ensemble de votre code

  • Affichez les dépendances spécifiques dans votre code

  • Affichez les dépendances entre C ou les fichiers sources et les fichiers d'en-tête C++

  • Générer des graphiques pour le traitement par lots à l'aide de GraphCmd.exe

ConseilConseil

Pour générer des graphiques plus complètes pour les projets C++, l'option du compilateur d'informations de parcourir (/FR) doit être définie sur ces projets.Sinon, un message vous invite à définir cette option.Si le message s'affiche, vous pouvez définir l'option pour que le graphique actuellement en choisissant OK, ou vous pouvez définir l'option et masquer le message pour tous les graphiques suivants.Pour que le message s'affiche pour les graphiques suivants, définir la clé de Registre suivante à 0 ou supprimer la clé :

HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\NativeProvider : AutoEnableSbr

Consultez /FR, /Fr (Créer un fichier .sbr).

Obtenir une vue d'ensemble de votre code

Vous pouvez créer un graphique de dépendance pour votre solution entière ou pour les assemblys ou des fichiers binaires.

Dd409453.collapse_all(fr-fr,VS.110).gifObtenir une vue d'ensemble de votre solution

  1. Dans le menu Architecture , choisissez Générer un graphique de dépendance, Pour la solution.

    Vous obtenez un graphique qui affiche les assemblys de niveau supérieur et les liens de globales entre eux.L'épaisseur d'un lien global indique le nombre de dépendances individuelles le lien représente.Le groupe Externes contient n'importe quoi à l'extérieur de votre solution, y compris les dépendances de plateforme.Les assemblys externes affichent uniquement les éléments qui sont utilisés.

    Graphique de dépendance de niveau supérieur des assemblys

  2. Vous pouvez maintenant explorer ces assemblys en développant les.Déplacez le pointeur de la souris sur un assembly, puis sélectionnez le bouton en forme de chevron (^) lorsqu'il apparaît.(Clavier : Sélectionnez l'élément, puis choisissez la clé plus (+).) Effectuez la même opération pour les espaces de noms, des classes, et les membres continuent d'explorer votre code.

  3. Pour obtenir plus d'informations sur un élément ou un lien, déplacez le pointeur sur l'élément jusqu'à ce qu'une info-bulle s'affiche.

  4. Pour examiner des éléments et des dépendances représentées par un lien global, sélectionnez le lien d'abord, puis ouvrez ensuite le menu contextuel.Choisissez Afficher, Liens de contribution dans le diagramme actuel ou Liens de contribution dans un diagramme.

    Visual Studio développe les groupes aux deux extrémités du lien et affiche uniquement les éléments et dépendances qui participent au lien.Pour afficher les éléments qui existent dans le code mais sont manquants dans un groupe, choisissez Récupérer à nouveau les enfantsIcône Récupérer à nouveau les enfants.

Reportez-vous à :

Dd409453.collapse_all(fr-fr,VS.110).gifObtenir une vue d'ensemble des assemblys ou des fichiers binaires

  • créez un graphique vide, ou ouvrez un graphique existant (fichier .dgml).Visual Studio extérieur de la, faites glisser les assemblys ou les binaires au graphique.

    [!REMARQUE]

    Vous pouvez faire glisser des assemblys ou des binaires de l'Explorateur Windows uniquement si vous exécutez l'Explorateur Windows et Visual Studio aux mêmes autorisations de (UAC) de contrôle d'accès d'utilisateur au niveau.Par exemple, si le contrôle de compte d'utilisateur est activé, et vous exécuter Visual Studio en tant qu'administrateur, l'Explorateur Windows bloquera l'exécution glissante.Pour contourner ce problème, assurez -vous que Visual Studio exécute en tant qu'administrateur, ou la visite contrôle de compte d'utilisateur désactivé.Notez que dans windows 8, l'Explorateur Windows est l'Explorateur de fichiers.

    ou

    1. Dans le menu Architecture , choisissez Fenêtres, Navigateur de l'architecture.

    2. Dans la première colonne, sous Système de fichiers, choisissez Sélectionner les fichiers.

    3. Dans la zone Ouvrir , recherchez et sélectionnez les assemblys ou les fichiers binaires.Choisissez Ouvrir pour les ajouter à la colonne suivante dans Navigateur de l'architecture.

    4. Dans Navigateur de l'architecture, sélectionnez les assemblys ou les fichiers binaires.

    5. À droite de la colonne qui contient des assemblys ou des fichiers sélectionnés, sélectionnez la colonne d'action réduite pour la développer.

      ConseilConseil

      La colonne d'action réduite apparaît en surbrillance lorsque vous déplacez le pointeur sur ce dernier.

    6. Dans la colonne d'action, sous Commandes, choisissez Ouvrir pour générer un graphique de dépendance.

      Consultez Rechercher du code avec le navigateur de l'architecture.

Dd409453.collapse_all(fr-fr,VS.110).gifPour créer un graphique vide

  1. Pour ouvrir un nouveau graphique vide sans l'ajouter à votre solution, dans le menu Fichier , choisissez Nouveau, Fichier.

    ou

    Pour ajouter un graphique vide au répertoire Éléments de solution dans votre solution, ouvrez le menu contextuel du nœud de solution de niveau supérieur.Choisissez Ajouter, Nouvel élément.

  2. Sous Installé, choisissez Général.

  3. Dans le volet droit, sélectionnez Document de graphique orienté.

    Vous pouvez également ajouter un graphique vide à un projet de modélisation dans le menu Architecture en choisissant Nouveau diagramme.

Affichez les dépendances spécifiques dans le code

Vous pouvez créer un graphique de dépendance pour des éléments spécifiques dans votre solution ou dans les assemblys et les fichiers binaires.

Affichez les dépendances spécifiques dans votre solution

Procédure de visualisation d'un code spécifique

Procédure de visualisation d'un code et de parents spécifiques

Dd409453.collapse_all(fr-fr,VS.110).gif

  1. Dans Explorateur de solutions, éléments choisis qui vous intéressent.Vous pouvez sélectionner des projets, des références d'assembly, les dossiers, les fichiers, les types, et leurs membres.Pour rechercher un élément spécifique, utilisez la zone de recherche Explorateur de solutions .

    ConseilConseil

    Pour rechercher des éléments avec des dépendances sur des types ou des membres, ouvrez le menu contextuel du type ou du membre dans Explorateur de solutions.Choisissez le type de dépendance.L'explorateur de solutions affiche les éléments qui ont une dépendance spécifiée.Sélectionnez les résultats.

  2. Pour représenter graphiquement vos éléments et leurs membres, dans la barre d'outils Explorateur de solutions , choisissez Créez un document de graphiqueCréer un graphique à partir du bouton Nœuds sélectionnés.

    ou

    Pour comprendre la hiérarchie parente sur le graphique, ouvrez la liste Créez un document de graphique… dans la barre d'outils Explorateur de solutions , puis choisissez Nouveau graphique de dépendance avec des ancêtres.

    ConseilConseil

    Vous pouvez également faire glisser des éléments vers le graphique.D'abord, créez un graphique vide ou ouvrez un graphique existant (fichier .dgml).Pour comprendre la hiérarchie de conteneurs parente, appuyez sur la touche et maintenez la touche CTRL pendant que vous faites glisser des éléments.

    Vous obtenez un graphique qui affiche les éléments sélectionnés.

  3. Pour explorer des éléments, vous pouvez développer les.Déplacez le pointeur de la souris sur un élément, puis choisissez le bouton de chevron (^) lorsqu'il apparaît.Pour développer tous les éléments, ouvrez le menu contextuel du graphique.Choisissez Groupe, Développer tout.

    [!REMARQUE]

    Cette commande est pas disponible si développer tous les groupes génère des problèmes d'un graphique inutilisable ou de mémoire.

  4. Pour récupérer des éléments manque d'un groupe, choisissez Récupérer à nouveau les enfantsIcône Récupérer à nouveau les enfants dans le groupe.

  5. Pour afficher plus d'éléments liés à ceux sur le graphique, ouvrez le menu contextuel pour l'élément.Choisissez Afficher et la relation des éléments qui vous intéressent.

    Pour un assembly, choisissez :

    Assemblys référencés

    Ajoutez les assemblys qui ce des références d'assembly.Les assemblys externes apparaissent dans le groupe Externes .

    Référencer des assemblys

    Ajoutez les assemblys de la solution qui référencent cet assembly.

    Pour une classe, choisissez :

    Basez des types

    Pour une classe, ajoutez la classe de base et les interfaces implémentées.

    Pour une interface, ajoutez les interfaces de base.

    Types dérivés

    Pour une classe, ajoutez des classes dérivées.

    Pour une interface, ajoutez les interfaces dérivées et les classes ou les structures implémentants.

    Tous les types de base

    Ajoutez la hiérarchie de classe de base ou d'interface de manière récursive.

    Tous les types dérivés

    Pour une classe, ajoutez toutes les classes dérivées de manière récursive.

    Pour une interface, ajoutez toutes les interfaces dérivées et de l'implémentation des classes ou des structures de manière récursive.

    Hiérarchie de relation contenant-contenu

    Ajoutez la hiérarchie de conteneurs parente.

    Types utilisés

    Ajoutez toutes les classes et leurs membres que cette classe utilise.

    Utiliser-Par des types

    Ajoutez toutes les classes et les membres qui utilisent cette classe.

    Pour une méthode, choisissez :

    Hiérarchie de relation contenant-contenu

    Ajoutez la hiérarchie de conteneurs parente.

    Methods appelée

    Ajoutez les méthodes qui cette méthode appelle.

    Appeler-Par des méthodes

    Ajoutez les méthodes qui appellent cette méthode.

    Méthodes substituées dans les types de base

    Pour une méthode qui substitue d'autres méthodes ou implémente la méthode d'interface, ajoutez toutes les méthodes virtuelles ou abstraites dans les classes de base qui sont substitués et, le cas échéant, la méthode de l'interface implémentée.

    Champs référencés

    Ajoutez des champs que cette méthode référence.

    Pour un champ, sélectionnez :

    Hiérarchie de relation contenant-contenu

    Ajoutez la hiérarchie de conteneurs parente.

    Référencement des méthodes

    Ajoutez les méthodes qui font référence à ce champ.

Reportez-vous à :

Dd409453.collapse_all(fr-fr,VS.110).gifAffichez les dépendances spécifiques dans les assemblys ou les fichiers binaires

  1. Dans le menu Architecture , choisissez Fenêtres, Navigateur de l'architecture.

  2. Dans la première colonne, sous Système de fichiers, choisissez Sélectionner les fichiers.

  3. Dans la zone Ouvrir , recherchez et sélectionnez les assemblys ou les fichiers binaires.Choisissez Ouvrir pour les ajouter à la colonne suivante dans Navigateur de l'architecture.

  4. Dans la colonne suivante, sélectionnez les assemblys ou les fichiers binaires.

    Par défaut, la colonne suivante affiche les éléments contenus dans les éléments sélectionnés.

    ConseilConseil

    Pour sélectionner d'autres éléments connexes, développez la colonne réduite à droite de la colonne avec vos sélections.Sous Navigation des nœuds, sélectionnez les genres d'éléments qui vous intéressent.Sous Navigation sortante ou Navigation entrante, sélectionnez les genres de relations qui vous intéressent.Consultez Rechercher du code avec le navigateur de l'architecture.

  5. Recherchez et sélectionnez tous les éléments que vous souhaitez mettre dans le graphique.

  6. Pour créer un graphique, dans la barre d'outils Navigateur de l'architecture , choisissez Créez un document de graphique de tous les nœuds sélectionnésCréer un graphique à partir du bouton Nœuds sélectionnés.

    Visual Studio crée le graphique et l'ouvre.

    ou

    Pour ajouter votre sélection à un graphique, suivez ces étapes :

    1. Ouvrez le fichier .dgml du graphique, ou créez un graphique vide.

    2. Dans la barre d'outils Navigateur de l'architecture , choisissez Ajoutez tous les nœuds sélectionnés au document de graphique actuellement visibleAjouter tous les nœuds sélectionnés au bouton du graphique.

      ou

      Faites glisser les éléments Navigateur de l'architecture au graphique.

Affichez les dépendances entre C et les fichiers sources et les fichiers d'en-tête C++

Pour voir les dépendances entre

Procédez comme suit

Tous les fichiers sources et les fichiers d'en-tête dans la solution

Dans le menu Architecture , choisissez Générer un graphique de dépendance, Pour le fichier Include.

Graphique de dépendance pour le code natif

Le fichier actuellement ouvert et les fichiers sources et les fichiers d'en-tête associés

  1. Ouvrez un fichier source ou un fichier d'en-tête.

  2. Ouvrez le menu contextuel n'importe où dans le fichier.Choisissez Générer le graphique des fichiers Include.

Graphique de dépendance de premier niveau pour le fichier .h

[!REMARQUE]

Lorsque vous ouvrez une solution qui contient les projets Visual C++, elle peut prendre un certain temps à jour la base de données Intellisense.Pendant ce temps, vous pouvez ne pas pouvoir créer des graphiques de dépendance pour les fichiers d'en-tête (.h ou #include) jusqu'à ce que la base de données Intellisense finisse de mettre à jour.Vous pouvez surveiller la progression de mise à jour dans la barre d'état de Visual Studio.Pour résoudre les problèmes ou des messages affichés car certains paramètres Intellisense sont désactivées, consultez Dépannage.

Graphiques de dépendance de partage

Enregistrez et partager le graphique avec d'autres utilisateurs Visual Studio

  • Utilisez le menu Fichier pour enregistrer le graphique.

    ou

    Pour enregistrer le graphique dans le cadre de le projet spécifique, ouvrez le menu contextuel pour la surface du graphique.Choisissez Déplacer <DependencyGraphName.dgml> dans et le projet dans lequel vous souhaitez enregistrer le graphique.

    Visual Studio enregistre le graphique en tant que fichier .dgml que vous pouvez partager avec d'autres utilisateurs Visual Studio finaux, premium de Visual Studio, et Visual Studio professional.

    [!REMARQUE]

    Avant de partagiez un graphique avec ceux qui utilisent premium de Visual Studio et le Visual Studio professional, veillez à développer tous les groupes, les nœuds masqués show et liens entre les groupes, et récupérer tous les nœuds supprimés à d'autres pour afficher sur le graphique.Sinon, les autres utilisateurs ne pourront pas afficher ces éléments.

    L'erreur suivante peut se produire lorsque vous enregistrez un graphique se trouvant dans un projet de modélisation ou ayant été copié à partir d'un projet de modélisation vers un autre emplacement.

    « Impossible d'enregistrer NomFichier en dehors du répertoire du projet.Les éléments liés ne sont pas pris en charge. »

    Visual Studio affiche l'erreur, mais crée la version enregistrée d'une manière.Pour éviter cette erreur, créez le graphique en dehors du projet de modélisation.Vous pouvez ensuite l'enregistrer à l'emplacement que vous souhaitez.Le fait de copier le fichier vers un autre emplacement de la solution, puis de tenter de l'enregistrer, ne fonctionnera pas.

Exportez le graphique comme une image vous pouvez le copier dans d'autres applications, telles que Microsoft Word ou PowerPoint

  1. Ouvrez le menu contextuel pour la surface du graphique.Choisissez Modifier, Copier l'image.

  2. Collez l'image dans une autre application.

Exportez le graphique en tant que fichier XPS vous pouvez le voir dans des visionneuses XML ou XAML comme Internet Explorer

  1. Ouvrez le menu contextuel de la surface du graphique.Choisissez Enregistrer au format XPS.

  2. Dans la boîte de dialogue Enregistrer sous , accédez à l'emplacement où vous souhaitez enregistrer le fichier.

  3. Nommez le graphique.Assurez -vous que la zone Type de fichier a la valeur Classe (XPS *.xps).Choisissez Enregistrer.

Générer des graphiques pour le traitement par lots

Vous pouvez générer des documents de graphiques (.dgml) par lots à l'aide de l'outil en ligne de commande des GraphCmd.exe .Par exemple, vous pouvez exécuter l'outil après chaque build pour rechercher les dépendances qui ont changé entre les builds.Cet outil se trouve dans le dossier suivant : C:\Program Files\Microsoft Visual Studio 11.0\Common7\IDE.

[!REMARQUE]

GraphCmd.exe prend en charge uniquement le code.NET et génère des informations sur les dépendances uniquement pour les assemblys ou des fichiers .dgml, pas le code source dans une solution Visual Studio ou des fichiers projet.GraphCmd.exe s'exécute en dehors de Visual Studio, donc la prise en charge des actions dans les requêtes DGQL est limité.

Utilisez la syntaxe suivante de GraphCmd.exe :

GraphCmd -? -all -exceptions -input File_Name -query File_Name -exec "DGQL_Statement" -output File_Name -path alias=path

ConseilConseil

Vous pouvez spécifier les options suivantes plusieurs fois : -input, -query, -exec et -path.

Le tableau suivant décrit les options de GraphCmd.exe :

-?

Afficher l'aide de GraphCmd.exe.

-all

Inclure tous les résultats de requête intermédiaires, et pas seulement ceux du dernier ensemble de nœuds.

-exceptions

Signaler les exceptions de requête sous la forme d'un fichier de document de graphique (.dgml).

-input Nom_Fichier

Traiter le fichier .dgml spécifié.

Ceci est utile pour post-traiter un fichier .dgml et le filtrage afin de pouvoir le visualiser plus facilement dans Visual Studio.

-query Nom_Fichier

Exécuter le fichier .dgql (DGQL, Directed Graph Query Language) spécifié.

Reportez-vous à :

-exec "Instruction_DGQL"

Exécuter l'instruction DGQL spécifiée.

Consultez Langage de requête de présentation (DGQL) de graphique orienté.

-output Nom_Fichier

Obtenir la sortie du fichier .dgml spécifié.

-path alias=chemin d'accès

Spécifier un nouvel alias à utiliser dans l'entrée et la sortie de documents DGML.

Par exemple :

GraphCmd -output MyGeneratedGraph.dgml -path "MyPathAlias=C:\Program Files\..."

Consultez l' Alias pour les chemins d'accès fréquemment utilisés.

Dd409453.collapse_all(fr-fr,VS.110).gifAlias pour les chemins d'accès fréquemment utilisés

Les alias pour les chemins d'accès fréquemment utilisés réduisent la taille du fichier .dgml, ainsi que la durée nécessaire au téléchargement et à l'enregistrement du fichier.Pour créer un alias, ajoutez une section <Paths></Paths> à la fin du fichier .dgml.Dans cette section, ajoutez un élément <Path/> pour définir un alias pour le chemin d'accès :

<Paths>
   <Path Id="MyPathAlias" Value="C:\...\..." />
</Paths>

Pour référencer l'alias à partir d'un élément du fichier .dgml, mettez l'Id de l'élément <Path/> entre parenthèses (()) et faites précéder le tout du signe dollar ($) :

<Nodes>
   <Node Id="MyNode" Reference="$(MyPathAlias)MyDocument.txt" />
</Nodes>
<Properties>
   <Property Id="Reference" Label="My Document" DataType="System.String" IsReference="True" />
</Properties>

Pour modifier des fichiers .dgml, consultez Modifier et personnaliser des graphiques de dépendance.

Dd409453.collapse_all(fr-fr,VS.110).gifFonctionnement du langage DGQL (Directed Graph Query Language)

Le langage DGQL est un langage de requêtes simplifié que vous pouvez utiliser pour générer du code DGML.Une instruction DGQL suit un modèle alternant une sélection de nœuds et des actions, de sorte que chaque sélection de nœuds crée l'entrée de l'action suivante, dont la sortie devient l'entrée de la sélection de nœuds suivante, et ainsi de suite.

Le format d'une instruction DGQL est le suivant :

<node selection> / <action> / <node selection> / <action> / ...

Le tableau suivant décrit la syntaxe DGQL utilisée pour sélectionner des nœuds :

*

Sélectionner tous les nœuds.

+ "text"

Sélectionner tous les nœuds qui contiennent la chaîne "text".

+ Id.Equals("text")

Sélectionner tous les nœuds pour lesquels Id est égal à la chaîne "text".

+ Background.Contains("text")

Sélectionner tous les nœuds pour lesquels l'attribut Background a une valeur qui contient la chaîne "text".

+ "text1" + "text2" + ...

Sélectionner tous les nœuds qui correspondent à "text1" ou "text2".

+ MyProperty="True"

Sélectionner tous les nœuds qui possèdent une propriété nommée MyProperty ayant la valeur "True".

- Label.Contains("text")

Sélectionner tous les nœuds, sauf ceux qui possèdent un attribut Label qui contient (Contains) la chaîne "text".

+ Category.Is("MyCategory")

Sélectionner tous les nœuds qui possèdent une catégorie nommée MyCategory ou qui héritent de MyCategory.

Le tableau suivant décrit des exemples d'actions directes pouvant être exécutées sur les nœuds sélectionnés :

Exemple d'action

Description

Microsoft.Contains

Retourner tous les nœuds qui sont contenus par les nœuds d'entrée.Vous pouvez remplacer Contains par une autre catégorie de lien.

Microsoft.Open

Ouvrir le code source des nœuds d'entrée.

RemarqueRemarque
Fonctionne uniquement dans Visual Studio.

Microsoft.AllOutBoundLinks

Retourner tous les nœuds qui sont la cible d'un lien sortant à partir des nœuds d'entrée.

Microsoft.AllInboundLinks

Retourner tous les nœuds qui sont l'extrémité source d'un lien vers les nœuds d'entrée.

Microsoft.Core.CreateGroupsByProperties

Appeler l'action GroupByProperties.

Microsoft.AllNodes

Retourner tous les nœuds figurant jusqu'ici dans l'ensemble du graphique.

Les actions pilotées par des données sélectionnent des éléments qui reposent uniquement sur les données figurant dans les nœuds d'entrée et les liens.Lorsque des catégories sont mises en correspondance grâce aux actions pilotées par des données, les catégories héritées sont incluses.Le tableau suivant décrit des exemples d'actions pilotées par des données :

Type

Description

Node:Both:Category

Retourner tous les nœuds qui possèdent la catégorie Category et qui sont reliés aux nœuds d'entrée par un lien qui pointe vers l'une ou l'autre direction.

Link:Both:Category

Retourner tous les nœuds qui sont reliés aux nœuds d'entrée par un lien qui pointe vers l'une ou l'autre direction et qui possèdent la catégorie Category.

Link:Backward:Category

Retourner tous les nœuds qui pointent vers les nœuds d'entrée ayant un lien qui possède la catégorie Category.

Link:Forward:Category

Retourner tous les nœuds qui pointent à partir des nœuds d'entrée ayant un lien qui possède la catégorie Category.

Dd409453.collapse_all(fr-fr,VS.110).gifConseils

  • En général, une action « par défaut » est définie pour un ensemble donné de nœuds d'entrée ; celle-ci est automatiquement sélectionnée par le Navigateur de l'architecture.Pour obtenir le même comportement, utilisez une action vide : //

  • Comme l'espace blanc n'est pas significatif en langage DGQL, vous pouvez mettre en forme votre requête de telle sorte qu'elle tienne sur une seule ligne si nécessaire.Cela s'avère utile lorsque vous utilisez l'option –exec avec GraphCmd.

  • Lorsque vous déboguez du code DGQL, utilisez l'action "Execute Expanded" dans le Navigateur de l'architecture pour afficher chaque étape de la requête et repérer l'étape qui ne produit pas les résultats attendus.

Dd409453.collapse_all(fr-fr,VS.110).gifExemple

L'instruction DGQL suivante exécute une requête décrite dans les étapes ci-dessous :

+ Id.Equals("Microsoft.Solution.ClassView") / "Microsoft.Solution.ClassView" / * / "Node:Both:CodeSchema_Class" / + CodeSchemaProperty_IsPublic.Equals("True")
  1. Sélectionnez le nœud Affichage de classes dans la première colonne Navigateur de l'architecture.

  2. Exécutez l'action « Microsoft.Solution.ClassView", qui retourne tous les espaces de noms dans la solution. 

  3. Utilisez * pour sélectionner tous les espaces de noms.

  4. Sélectionnez tous les nœuds de catégorie CodeSchema_Class, associés à ces espaces de noms par un lien dans un sens ou dans l'autre.Ce seront généralement des liens de relation contenant-contenu.

  5. Filtrez les classes résultantes pour ne conserver que celles qui possèdent la propriété CodeSchemaProperty_IsPublic="True".

L'action "Microsoft.Solution.ClassView" est techniquement inutile, car il s'agit de l'action « par défaut » du nœud Affichage de classes.Vous pouvez par conséquent remplacer cette action par // pour simplifier la requête et la mettre en forme sur une seule ligne de la manière suivante :

+Id.Equals("Microsoft.Solution.ClassView")//*/"Node:Both:CodeSchema_Class"/+CodeSchemaProperty_IsPublic.Equals("True")

Dépannage

Les éléments suivants ne sont pas pris en charge pour le code C et C++ :

  • Les types de base n'apparaissent pas sur les graphiques qui incluent la hiérarchie parente.

  • La plupart des éléments de menu Afficher sont pas disponibles pour le code C et C++.

Les problèmes suivants peuvent se produire en créant des graphiques de dépendance pour le code C et C++ :

Problème

Causes possibles

Résolution

Le graphique de dépendance à générer.

Aucun projet de la solution n'a été généré avec succès.

Résolvez les erreurs de build qui se sont produites puis régénérez le graphique.

Visual Studio ne répond pas lorsque vous essayez de générer un graphique de dépendance dans le menu Architecture.

Le fichier de base de données du programme (.pdb) peut être endommagé.

Un fichier .pdb stocke des informations de débogage, telles que des informations sur le type, la méthode et le fichier source.

Consultez [OBSOLÈTE] Fichiers de base de données du programme (C++).

Régénérez la solution puis recommencez.

Certains paramètres de la base de données de navigation IntelliSense sont désactivés.

Certains paramètres IntelliSense peuvent être désactivés dans la boîte de dialogue Visual Studio Options.

Activez les paramètres.

Consultez Options, Éditeur de texte, C/C++, Avancé.

Le message Méthodes inconnues s'affiche sur un nœud de méthode.

Ce problème se produit car le nom de la méthode ne peut pas être résolu.

Le fichier binaire peut ne pas avoir de table de réadressage de base.

Activez l'option /FIXED:NO dans l'éditeur de liens.

Consultez /FIXED (Adresse de base fixe).

Le fichier de base de données du programme (.pdb) peut ne pas être généré.

Un fichier .pdb stocke des informations de débogage, telles que des informations sur le type, la méthode et le fichier source.

Pour plus d’informations, consultez [OBSOLÈTE] Fichiers de base de données du programme (C++).

Activez l'option /DEBUG dans l'éditeur de liens.

Consultez /DEBUG (Générer les informations de débogage).

Impossible d'ouvrir ou de localiser le fichier .pdb aux emplacements attendus.

Assurez-vous que le fichier .pdb existe dans les emplacements attendus.

Les informations de débogage ont été supprimées du fichier .pdb.

Si l'option /PDBSTRIPED a été utilisée dans l'éditeur de liens, incluez à la place le fichier .pdb complet.

Consultez /PDBSTRIPPED (Supprimer les symboles privés).

L'appelant n'est pas une fonction ; il correspond à un thunk dans le fichier binaire ou à un pointeur dans la section de données.

Lorsque l'appelant est un thunk, essayez d'utiliser _declspec(dllimport) pour éviter le thunk.

Reportez-vous à :

Où puis -je faire ?

Où peux-je obtenir plus d'informations ?

Catégorie

Liens

Forums

Blogs