Mapper les dépendances dans vos solutionsMap dependencies across your solutions

Pour comprendre les dépendances présentes dans votre code, vous pouvez les visualiser en créant des cartes de code.When you want to understand dependencies across your code, visualize them by creating code maps. Vous pouvez ainsi voir comment le code s’ajuste sans avoir à parcourir les fichiers et les lignes de code.This helps you see how the code fits together without reading through files and lines of code.

Afficher les dépendances dans vos solutionsView dependencies across your solutions

Voici quelques vidéos:Here are some videos:

Prise en main des cartes de codeGet started with code maps

Pour utiliser des cartes de code, vous aurez besoin soit:To use code maps you'll need either:

  • Visual Studio Enterprise pour créer des cartes de code à partir de l’éditeur de code, l’Explorateur de solutions, l’affichage de classes ou l’Explorateur d’objets ;Visual Studio Enterprise: Create code maps from the code editor, Solution Explorer, Class View, or Object Browser.

  • Visual Studio Professional pour ouvrir des cartes de code, effectuer des modifications mineures et parcourir le code.Visual Studio Professional: Open code maps, make limited edits, and navigate code.

Avertissement

Avant de partager des cartes créées dans Visual Studio Enterprise avec d’autres personnes utilisant Visual Studio Professional, vérifiez que tous les éléments présents sur la carte (comme les éléments masqués, les groupes développés et les liens entre les groupes) sont visibles.Before you share maps created in Visual Studio Enterprise with others who use Visual Studio Professional, make sure that all the items on the map (such as hidden items, expanded groups, and cross-group links) are made visible.

Vous pouvez mapper les dépendances de code dans les langages suivants:You can map dependencies for code in these languages:

  • Visual c# ou Visual Basic dans une solution ou des assemblys (.dll ou .exe)Visual C# or Visual Basic in a solution or assemblies (.dll or .exe)

  • Code C ou C++ natif ou managé dans des projets, fichiers d’en-tête (.h ou #include) ou des fichiers binaires Visual C++Native or managed C or C++ code in Visual C++ projects, header files (.h or #include), or binaries

  • projets et assemblys X++ créés à partir de modules .NET pour Microsoft Dynamics AX.X++ projects and assemblies made from .NET modules for Microsoft Dynamics AX

    Remarque : pour les projets autres que c# ou Visual Basic, il existe moins d’options pour démarrer une carte de code ou ajouter des éléments à une carte de code existante.Note: For projects other than C# or Visual Basic, there are fewer options for starting a code map or adding items to an existing code map. Par exemple, vous ne pouvez pas cliquer avec le bouton droit sur un objet dans l’éditeur de texte d’un projet C++ et l’ajouter à une carte de code.For example, you cannot right-click an object in the text editor of a C++ project and add it to a code map. Toutefois, vous pouvez glisser-déplacer des éléments de code individuels ou des fichiers à partir de l’Explorateur de solutions, de l’affichage de classes et de l’Explorateur d’objets.However, you can drag and drop individual code elements or files from Solution Explorer, Class View, and Object Browser.

Pour afficher les dépendances globales dans votre solutionTo see the overall dependencies across your solution

  1. Ouvrez le menu Architecture .Open the Architecture menu.

  2. Si vous venez d’ouvrir la solution et n’avez pas encore générée, ou si votre code a changé depuis la dernière fois que vous les avez générées, choisissez générer une carte du Code pour la Solution.If you just opened the solution and haven't yet built it, or if your code has changed since the last time you built it, choose Generate Code Map for Solution.

  3. Si votre code n’a pas changé depuis la dernière fois qu’il a été généré, choisissez Générer une carte du code pour la solution sans génération pour créer plus rapidement la carte.If your code hasn't changed since the last time you built it, choose Generate Code Map for Solution Without Building to get faster performance when creating the map.

  4. ConsultezVisualiser les dépendances globales pour comprendre comment utiliser des cartes de code pour afficher les dépendances globales dans votre solution.See overall dependencies to understand how you can use code maps to view the overall dependencies across your solution.

Pour visualiser des dépendances spécifiques dans votre solutionTo see specific dependencies within your solution

  1. Une fois votre solution chargée, ouvrez l’ Explorateur de solutions.With your solution loaded, open Solution Explorer.

  2. Sélectionnez les projets, références d’assembly, dossiers, fichiers, types ou membres que vous souhaitez afficher sur la carte.Select all the projects, assembly references, folders, files, types, or members that you want to map.

  3. Sur le l’Explorateur de solutions barre d’outils, choisissez afficher sur la carte de Codecréer nouveau graphique à partir de nœuds bouton sélectionnés.On the Solution Explorer toolbar, choose Show on Code MapCreate New Graph From Selected Nodes Button. Ou bien, ouvrez le menu contextuel et choisissez Afficher sur la carte de code.Or open the shortcut menu and choose Show on Code Map. Vous pouvez également faire glisser des éléments à partir de l’affichage de classes ou de l’Explorateur d’objets vers une nouvelle carte de code ou une carte existante.You can also drag items from Class View or Object Browser into a new or an existing code map.

  4. ConsultezVisualiser les dépendances spécifiques pour comprendre comment utiliser des cartes de code pour afficher des dépendances spécifiques au sein de votre solution.See specific dependencies to understand how you can use code maps to view specific dependencies within your solution.

Pour ajouter une nouvelle carte de code vide à votre solutionTo add a new empty code map to your solution

  1. Dans l’ Explorateur de solutions, ouvrez le menu contextuel du nœud racine de votre solution.In Solution Explorer, open the shortcut menu for your top-level solution node. Choisissez Ajouter , puis Nouvel élément.Choose Add then choose New Item.

  2. Sous Installé, choisissez Général.Under Installed, choose General.

  3. Dans le volet droit, choisissez Document de graphique orienté , puis Ajouter.In the right pane, choose Directed Graph Document and then choose Add.

    Vous disposez maintenant d’une carte vide qui apparaît dans le dossier Éléments de solution de votre solution.You now have a blank map, which appears in your solution's Solution Items folder.

Pour créer une carte de code vide sans l’ajouter à votre solutionTo create a new empty code map without adding it to your solution

  1. Ouvrez le menu Architecture , puis choisissez Nouvelle carte de code.Open the Architecture menu and choose New Code Map.

    - ou -- or -

  2. Ouvrez le menu Fichier , puis choisissez Nouveau et Fichier.Open the File menu and choose New then choose File.

  3. Sous Installé, choisissez Général.Under Installed, choose General.

  4. Dans le volet droit, choisissez Document de graphique orienté , puis Ouvrir.In the right pane, choose Directed Graph Document and then choose Open.

    Vous disposez maintenant d’une carte vide qui n’apparaît pas dans les dossiers de votre solution.You now have a blank map, which does not appear in your solution's folders.

Visualiser les dépendances globalesSee overall dependencies

Visualiser les dépendances dans votre solutionSee dependencies across your solution

  1. Dans le menu Architecture , choisissez Générer une carte du code pour la solution.On the Architecture menu, choose Generate Code Map for Solution.

    Générer une commande de carte de codeGenerate a code map command

    Vous obtenez une carte qui affiche les assemblys de niveau supérieur et les liens globaux qui les relient.You get a map that shows the top-level assemblies and aggregated links between them. Plus le lien global est large, plus il représente de dépendances.The wider the aggregate link, the more dependencies it represents.

  2. Utilisez le bouton Légende dans la barre d’outils de la carte de code pour afficher ou masquer la liste des icônes de type de projet (comme Projet de test, Projet web et Projet de téléphone), les éléments de code (comme Classes, Méthodes et Propriétés) et les types de relations (comme Hérite de, Implémente et Appelle).Use the Legend button on the code map toolbar to show or hide the list of project type icons (such as Test, Web, and Phone Project), code items (such as Classes, Methods, and Properties), and relation types (such as Inherits From, Implements, and Calls).

    Haut-graphique de dépendance au niveau des assemblysTop-level dependency graph of assemblies

    Cet exemple de solution contient des dossiers de solution (Tests et Composants), des projets de test, des projets web et des assemblys.This example solution contains Solution Folders (Tests and Components), Test Projects, Web Projects, and assemblies. Par défaut, toutes les relations d’imbrication apparaissent sous forme de groupesque vous pouvez développer et réduire.By default, all containment relationships appear as groups, which you can expand and collapse. Le groupe Externes contient les éléments qui ne font pas partie de votre solution, notamment les dépendances de plateforme.The Externals group contains anything outside your solution, including platform dependencies. Les assemblys externes affichent uniquement les éléments utilisés.External assemblies show only those items that are used. Par défaut, les types de base du système sont masqués pour ne pas trop encombrer la carte.By default, system base types are hidden on the map to reduce clutter.

  3. Pour descendre dans la hiérarchie de la carte, développez les groupes qui représentent des projets et des assemblys.To drill down into the map, expand the groups that represent projects and assemblies. Pour développer tout, appuyez sur Ctrl+A pour sélectionner tous les nœuds. Ensuite, choisissez Groupe, puis Développer dans le menu contextuel.You can expand everything by pressing CTRL+A to select all the nodes and then choosing Group, Expand from the shortcut menu.

    Développement de tous les groupes dans une carte de codeExpanding all groups in a code map

  4. Ceci peut toutefois ne pas s’avérer très utile pour une solution de grande taille.However, this may not be useful for a large solution. En fait, pour les solutions complexes, les limitations de mémoire peuvent vous empêcher de développer tous les groupes.In fact, for complex solutions, memory limitations may prevent you from expanding all the groups. Pour visualiser l’intérieur d’un nœud individuel, développez-le.Instead, to see inside an individual node, expand it. Déplacez le pointeur de la souris au-dessus du nœud, puis cliquez sur le chevron (flèche bas) quand il apparaît.Move your mouse pointer on top of the node and then click the chevron (down arrow) when it appears.

    Développement d’un nœud dans une carte de codeExpanding a node in a code map

    Ou bien, sélectionnez l’élément et appuyez sur la touche plus (+) du clavier.Or use the keyboard by selecting the item then pressing the plus key (+). Pour explorer des niveaux plus profonds de code, procédez de même pour les espaces de noms, les types et les membres.To explore deeper levels of code, do the same for namespaces, types, and members.

    Conseil

    Pour plus d’informations sur l’utilisation du code est mappé à l’aide de la souris, du clavier et tactile, consultez Parcourir et réorganiser des cartes de code.For more details of working with code maps using the mouse, keyboard, and touch, see Browse and rearrange code maps.

  5. Pour simplifier la carte et cibler des parties individuelles, choisissez Filtres dans la barre d’outils de la carte de code et sélectionnez uniquement les types de nœuds et de liens qui vous intéressent.To simplify the map and focus on individual parts, choose Filters on the code map toolbar and select just the types of nodes and links you are interested in. Par exemple, vous pouvez masquer tous les conteneurs Dossier Solution et Assembly.For example, you can hide all the Solution Folder and Assembly containers.

    Simplifier la carte en filtrant les conteneursSimplify the map by filtering containers

    Vous pouvez également simplifier la carte en masquant ou en supprimant des groupes et des éléments individuels de la carte, sans affecter le code de la solution sous-jacent.You can also simplify the map by hiding or removing individual groups and items from the map, without affecting the underlying solution code.

  6. Pour visualiser les relations entre les éléments, sélectionnez-les dans la carte.To see the relationships between items, select them in the map. Les couleurs des liens indiquent les types de relations, comme le montre le volet Légende .The colors of the links indicate the types of relationship, as shown in the Legend pane.

    Afficher les dépendances dans vos solutionsView dependencies across your solutions

    Dans cet exemple, les liens violets correspondent aux appels, les liens en pointillés aux références et les liens bleu clair à l’accès aux champs.In this example, the purple links are calls, the dotted links are references, and the light blue links are field access. Les liens verts peuvent représenter l’héritage ou correspondre à des liens globaux qui indiquent plusieurs types de relations (ou catégories).Green links can be inheritance, or they may be aggregate links that indicate more than one type of relationship (or category).

    Conseil

    Si vous voyez un lien vert, il ne signifie peut-être pas qu’il existe simplement une relation d’héritage.If you see a green link, it might not mean there's just an inheritance relationship. Il peut également exister des appels de méthode, mais ceux-ci sont masqués par la relation d’héritage.There might also be method calls, but these are hidden by the inheritance relationship. Pour afficher les types de liens spécifiques, utilisez les cases à cocher dans la filtres pour masquer les types qui ne vous intéressent pas.To see specific types of links, use the checkboxes in the Filters pane to hide the types you aren't interested in.

  7. Pour obtenir plus d’informations sur un élément ou un lien, déplacez le pointeur sur celui-ci jusqu’à ce qu’une info-bulle apparaisse.To get more information about an item or link, move the pointer on top of it until a tooltip appears. Celle-ci donne des détails sur un élément de code ou les catégories représentées par un lien.This shows details of a code element or the categories that a link represents.

    Afficher les catégories d’une relationShow the categories of a relationship

  8. Pour examiner les éléments et les dépendances représentés par un lien global, sélectionnez d’abord le lien, puis ouvrez son menu contextuel.To examine items and dependencies represented by an aggregate link, first select the link and then open its shortcut menu. Choisissez Afficher les liens de contribution (ou Afficher les liens de contribution sur des nouvelles cartes de code).Choose Show Contributing Links (or Show Contributing Links on New Code Map). Cette opération développe les groupes aux deux extrémités du lien et affiche uniquement les éléments et les dépendances qui participent au lien.This expands the groups at both ends of the link and shows only those items and dependencies that participate in the link.

  9. Pour cibler des parties spécifiques de la carte, vous pouvez continuer à supprimer des éléments qui que ne vous intéressent pas.To focus in on specific parts of the map, you can continue to remove items you aren't interested in. Par exemple, pour analyser l’affichage des classes et des membres, filtrez simplement tous les nœuds d’espace de noms dans le volet Filtres .For example, to drill into class and member view, simply filter all the namespace nodes in the Filters pane.

    Parcours de niveau classe et du membreDrilling down to class and member level

  10. Pour simplifier une carte de solution complexe, vous pouvez aussi générer une nouvelle carte contenant une sélection d’éléments à partir d’une carte existante.Another way to focus in on a complex solution map is to generate a new map containing selected items from an existing map. Maintenez la touche Ctrl enfoncée tout en sélectionnant les éléments qui vous intéressent, ouvrez le menu contextuel, puis choisissez Nouveau graphique à partir de la sélection.Hold CTRL while selecting the items you want to focus on, open the shortcut menu, and choose New Graph from Selection.

    Afficher les éléments sélectionnés dans une nouvelle carte de codeShow selected items on a new code map

  11. Le contexte est reporté sur la nouvelle carte.The containing context is carried over to the new map. Masquer des dossiers de Solution et tout autre conteneur que vous ne souhaitez pas afficher à l’aide du filtres volet.Hide Solution Folders and any other containers you don't want to see using the Filters pane.

    Filtrer les conteneurs pour simplifier l’affichageFilter the containers to simplify the view

  12. Développez les groupes et sélectionnez les éléments dans la carte pour afficher les relations.Expand the groups and select items in the map to view the relationships.

    Sélectionnez les éléments à afficher les relationsSelect items to view the relationships

    Voir aussi :See also:

Visualiser les dépendances entre les assemblys ou fichiers binairesSee dependencies across assemblies or binaries

  1. Créez une carte de code videou ouvrez une carte de code existante (fichier .dgml).Create an empty code map, or open an existing code map (.dgml file).

  2. Faites glisser sur la carte les assemblys ou fichiers binaires à représenter sur la carte à partir d’un emplacement externe à Visual Studio.Drag the assemblies or binaries you want to map from outside Visual Studio onto the map. Par exemple, vous pouvez faire glisser des assemblys ou des fichiers binaires à partir de l’Explorateur Windows ou de l’Explorateur de fichiers.For example, drag assemblies or binaries from Windows Explorer or File Explorer.

Note

Vous ne pouvez faire glisser des assemblys ou des fichiers binaires à partir de l’Explorateur Windows ou de l’Explorateur de fichiers que si vous exécutez Visual Studio avec le même niveau d’autorisations de contrôle de compte d’utilisateur (UAC).You can drag assemblies or binaries from Windows Explorer or File Explorer only if you are running it and Visual Studio at the same User Access Control (UAC) permissions level. Par exemple, si le contrôle de compte d’utilisateur est activé et que vous exécutez Visual Studio en tant qu’administrateur, l’Explorateur Windows ou l’Explorateur de fichiers bloque l’opération de glissement.For example, if UAC is turned on and you are running Visual Studio as Administrator, Windows Explorer or File Explorer will block the dragging operation. Pour contourner ce problème, assurez-vous qu’ils s’exécutent tous les deux avec le même niveau d’autorisation ou désactivez le contrôle de compte d’utilisateur.To work around this, make sure that both are running with the same permission level, or turn UAC off.

Visualiser les dépendances spécifiquesSee specific dependencies

Par exemple, supposons que vous deviez réviser du code dans certains fichiers contenant des modifications en attente.For example, suppose you have a code review to perform in some files with pending changes. Pour visualiser les dépendances dans ces modifications, vous pouvez créer une carte de code à partir de ces fichiers.To see the dependencies in those changes, you can create a code map from those files.

Afficher les dépendances spécifiques sur une carte de codeShow specific dependencies on a code map

Visualiser les dépendances spécifiques dans votre solutionSee specific dependencies in your solution

  1. Ouvrez l’ Explorateur de solutions.Open Solution Explorer. Sélectionnez les projets, références d’assembly, dossiers, fichiers, types et membres qui vous intéressent.Select the projects, assembly references, folders, files, types, and members that interest you. Pour rechercher les éléments qui ont des dépendances sur les types ou les membres, ouvrez le menu contextuel du type ou du membre depuis l’ Explorateur de solutions.To find items that have dependencies on types or members, open the type or member's shortcut menu from Solution Explorer. Choisissez le type de dépendance, puis sélectionnez les résultats.Choose the dependency type, and then select the results.

  2. Créez une carte de vos éléments et de leurs membres.Map your items and their members. Sur le l’Explorateur de solutions cliquez sur la barre d’outils afficher sur la carte de Codecréer nouveau graphique à partir de nœuds bouton sélectionnés.On the Solution Explorer toolbar click Show on Code MapCreate New Graph From Selected Nodes Button.

    Sélectionnez les éléments que vous souhaitez mapperSelect the items you want to map

  3. La carte montre les éléments sélectionnés au sein des assemblys conteneurs.The map shows the selected items within their containing assemblies.

    Sélectionné les éléments affichés en tant que groupes sur la carteSelected items shown as groups on the map

    Vous pouvez également faire glisser des éléments à partir de l’Explorateur de solutions, de l’affichage de classes ou de l’Explorateur d’objets vers une carte de code vide ou existante.You can also drag items from Solution Explorer, Class View, or Object Browser to a blank or an existing code map. Pour créer une carte vide, consultez Créer une carte de code vide.To create a blank map, see Create an empty code map. Pour inclure la hiérarchie parente de vos éléments, maintenez la touche Ctrl enfoncée tout en faisant glisser des éléments ou utilisez le bouton Inclure les parents dans la barre d’outils de la carte de code pour spécifier l’action par défaut.To include the parent hierarchy for your items, press and hold the CTRL key while you drag items, or use the Include Parents button on the code map toolbar to specify the default action.

    Note

    Lorsque vous ajoutez des éléments à partir d’un projet partagé par plusieurs applications, comme Windows Phone ou Windows Store, ces éléments apparaissent sur la carte avec le projet d’application actif.When you add items from a project that's shared across multiple apps, like Windows Phone or Windows Store, those items appear on the map with the currently active app project. Si vous modifiez le contexte vers un autre projet d’application et ajoutez des éléments à partir du projet partagé, ces éléments apparaissent alors avec le projet d’application qui vient d’être activé.If you change context to another app project and add more items from the shared project, those items now appear with the newly active app project. Les opérations que vous effectuez avec un élément de la carte s’appliquent uniquement aux éléments qui partagent le même contexte.Operations that you perform with an item on the map apply only to those items that share the same context.

  4. Pour explorer des éléments, développez-les.To explore items, expand them. Déplacez le pointeur de la souris au-dessus d’un élément, puis cliquez sur l’icône en forme de chevron (flèche bas) quand elle apparaît.Move the mouse pointer on top of an item, then click the chevron (down arrow) icon when it appears.

    Développement d’un nœud dans une carte de codeExpanding a node in a code map

    Pour développer tous les éléments, sélectionnez-les en appuyant sur Ctrl+A, ouvrez le menu contextuel de la carte, puis choisissez Groupe, Développer.To expand all items, select them using CTRL+A, then open the shortcut menu for the map and choose Group, Expand. Toutefois, cette option n’est pas disponible si le développement de tous les groupes crée une carte inutilisable ou entraîne des problèmes de mémoire.However, this option isn't available if expanding all groups creates an unusable map or memory issues.

  5. Continuez à développer les éléments qui vous intéressent jusqu’au niveau de la classe et du membre si nécessaire.Continue to expand items you are interested in, right down to the class and member level if required.

    Développer les groupes au niveau de la classe et du membreExpand groups to class and member level

    Pour afficher les membres qui sont dans le code, mais n’apparaissent pas sur la carte, cliquez sur le récupérer à nouveau les enfants icône icône récupérer à nouveau d’enfants en haut à gauche d’un groupe.To see members that are in the code but don't appear on the map, click the Refetch Children icon Refetch Children Icon in the top left corner of a group.

  6. Pour afficher d’autres d’éléments associés à ceux présents sur la carte, sélectionnez un élément et choisissez Afficher les éléments associés dans la barre d’outils de la carte de code, puis sélectionnez le type d’éléments associés à ajouter à la carte.To see more items related to those on the map, select one and choose Show Related on the code map toolbar, then select the type of related items to add to the map. Vous pouvez également sélectionner un ou plusieurs éléments, ouvrez le menu contextuel, puis choisissez le afficher... option pour le type d’éléments associés à ajouter à la carte.Alternatively, select one or more items, open the shortcut menu, and then choose the Show... option for the type of related items to add to the map. Par exemple :For example:

    Pour un assembly, choisissez :For an assembly, choose:

    Afficher les assemblys qui sont référencés par celaShow Assemblies This References Ajoutez les assemblys que cet assembly référence.Add assemblies that this assembly references. Les assemblys externes apparaissent dans le groupe Externes .External assemblies appear in the Externals group.
    Afficher les assemblys qui référencent celaShow Assemblies Referencing This Ajoutez les assemblys de la solution qui référencent cet assembly.Add assemblies in the solution that reference this assembly.

    Pour un espace de noms, choisissez Afficher l’assembly conteneurs’il n’est pas visible.For a namespace, choose Show Containing Assembly, if it's not visible.

    Pour une classe ou une interface, choisissez :For a class or interface, choose:

    Afficher les types de baseShow Base Types Pour une classe, ajoutez la classe de base et les interfaces implémentées.For a class, add the base class and the implemented interfaces.

    Pour une interface, ajoutez des interfaces de base.For an interface, add the base interfaces.
    Afficher les types dérivésShow Derived Types Pour une classe, ajoutez des classes dérivées.For a class, add the derived classes.

    Pour une interface, ajoutez les interfaces dérivées et les structures et classes d’implémentation.For an interface, add the derived interfaces and the implementing classes or structs.
    Afficher les types qui sont référencés par celaShow Types This References Ajoutez toutes les classes, avec leurs membres, que cette classe utilise.Add all classes and their members that this class uses.
    Afficher les types qui référencent celaShow Types Referencing This Ajoutez toutes les classes, avec leurs membres, qui utilisent cette classe.Add all classes and their members that use this class.
    Afficher l’espace de noms contenantShow Containing Namespace Ajoutez l’espace de noms parent.Add the parent namespace.
    Afficher l’espace de noms contenant et l’assembly conteneurShow Containing Namespace and Assembly Ajoutez la hiérarchie de conteneurs parents.Add the parent container hierarchy.
    Afficher tous les types de baseShow All Base Types Ajoutez la hiérarchie de classe de base ou d’interface de manière récursive.Add the base class or interface hierarchy recursively.
    Afficher tous les types dérivésShow All Derived Types Pour une classe, ajoutez toutes les classes dérivées de manière récursive.For a class, add all the derived classes recursively.

    Pour une interface, ajoutez toutes les interfaces dérivées et les structures et classes d’implémentation de manière récursive.For an interface, add all the derived interfaces and implementing classes or structs recursively.

    Pour une méthode, choisissez :For a method, choose:

    Afficher les méthodes qui sont appelées par celaShow Methods This Calls Ajoutez les méthodes que cette méthode appelle.Add methods that this method calls.
    Afficher les champs qui sont référencés par celaShow Fields This References Ajoutez les champs que cette méthode référence.Add fields that this method references.
    Afficher le type conteneurShow Containing Type Ajoutez le type de parent.Add the parent type.
    Afficher le type conteneur, l’espace de noms contenant et l’assembly conteneurShow Containing Type, Namespace, and Assembly Ajoutez la hiérarchie de conteneurs parents.Add the parent container hierarchy.
    Afficher les méthodes remplacéesShow Overridden Methods Pour une méthode qui remplace d’autres méthodes ou implémente la méthode d’une interface, ajoutez toutes les méthodes abstraites ou virtuelles dans les classes de base qui sont substituées et, le cas échéant, la méthode de l’interface implémentée.For a method that overrides other methods or implements an interface's method, add all the abstract or virtual methods in base classes that are overridden and, if any, the interface's method that is implemented.

    Pour un champ ou une propriété, choisissez :For a field or property, choose:

    Afficher le type conteneurShow Containing Type Ajoutez le type de parent.Add the parent type.
    Afficher le type conteneur, l’espace de noms contenant et l’assembly conteneurShow Containing Type, Namespace, and Assembly Ajoutez la hiérarchie de conteneurs parents.Add the parent container hierarchy.

    Afficher les méthodes appelées par ce membreShow methods called by this member

  7. La carte affiche les relations.The map shows the relationships. Dans cet exemple, les méthodes appelées par la méthode Find et leur emplacement dans la solution ou à l’extérieur.In this example, the methods called by the Find method, and their location in the solution or externally.

    Afficher les dépendances spécifiques sur une carte de codeShow specific dependencies on a code map

  8. Pour simplifier la carte et cibler des parties individuelles, choisissez Filtres dans la barre d’outils de la carte de code et sélectionnez uniquement les types de nœuds et de liens qui vous intéressent.To simplify the map and focus on individual parts, choose Filters on the code map toolbar and select just the types of nodes and links you are interested in. Par exemple, désactivez l’affichage des dossiers solution, des assemblys et des espaces de noms.For example, turn off display of Solution Folders, Assemblies, and Namespaces.

    Utilisez le volet de filtre pour simplifier l’affichageUse the Filter pane to simplify the display

Visualiser les dépendances entre les fichiers sources et les fichiers d’en-tête C et C++See dependencies between C and C++ source files and header files

Si vous souhaitez créer des cartes plus complètes pour des projets C++, définissez l’option du compilateur d’informations de consultation (/FR) sur ces projets.If you want to create more complete maps for C++ projects, set the browse information compiler option (/FR) on those projects. Sinon, un message vous invite à définir cette option.Otherwise, a message appears and prompts you to set this option. Si vous sélectionnez OK, l’option est définie uniquement pour la carte active.If you select OK, this sets the option for just the current map. Vous pouvez choisir de masquer le message pour toutes les cartes ultérieures.You can choose to hide the message for all later maps. Si vous masquez ce message, vous pouvez le faire réapparaître.If you hide this message, you can make it appear again. Affectez à la clé de Registre suivante la valeur 0 ou supprimez-la :Set the following registry key to 0 or delete the key:

HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0\NativeProvider : AutoEnableSbrHKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0\NativeProvider : AutoEnableSbr

Lorsque vous ouvrez une solution qui contient des projets Visual C++, la mise à jour de la base de données IntelliSense peut prendre un certain temps.When you open a solution that contains Visual C++ projects, it might take some time to update the IntelliSense database. Pendant ce temps, il est impossible de créer des cartes de code pour les fichiers d’en-tête (.h ou #include) tant que la base de données IntelliSense n’a pas terminé la mise à jour.During this time, you might not be able to create code maps for header (.h or #include) files until the IntelliSense database finishes updating. Vous pouvez surveiller la progression des mises à jour dans la barre d’état de Visual Studio.You can monitor the update progress in the Visual Studio status bar. Pour résoudre les problèmes ou messages qui s’affichent en raison de la désactivation de certains paramètres IntelliSense, consultez Résoudre les problèmes liés aux cartes dans le code C et C++.To resolve issues or messages that appear because certain IntelliSense settings are disabled, see Troubleshoot maps for C and C++ code.

  • Pour visualiser les dépendances entre tous les fichiers sources et fichiers d’en-tête de votre solution, dans le menu Architecture , choisissez Générer le graphique des fichiers Include.To see dependencies between all source files and header files in your solution, on the Architecture menu, choose Generate Graph of Include Files.

    Graphique de dépendance pour le code natifDependency graph for native code

  • Pour visualiser les dépendances entre le fichier actuellement ouvert et les fichiers sources et fichiers d’en-tête associés, ouvrez soit le fichier source, soit le fichier d’en-tête.To see dependencies between the currently open file and related source files and header files, open either the source file or the header file. Ouvrez le menu contextuel n’importe où dans le fichier.Open the file shortcut menu anywhere inside the file. Choisissez Générer le graphique des fichiers Include.Choose Generate Graph of Include Files.

    Première-graphique de dépendance de niveau pour le fichier .hFirst-level dependency graph for .h file

Résoudre les problèmes liés aux cartes dans le code C et C++Troubleshoot maps for C and C++ code

Ces éléments ne sont pas pris en charge pour le code C et C++ :These items aren't supported for C and C++ code:

  • Les types de base n’apparaissent pas sur les cartes qui incluent la hiérarchie parente.Base types don't appear on maps that include the parent hierarchy.

  • La plupart des éléments de menu Affichage ne sont pas disponibles pour le code C et C++.Most Show menu items aren't available for C and C++ code.

    Ces problèmes peuvent se produire quand vous créez des cartes de code pour du code C et C++ :These issues might happen when you create code maps for C and C++ code:

ProblèmeIssue Causes possiblesPossible cause RésolutionResolution
Échec de la génération de la carte de code.The code map failed to generate. Aucun projet de la solution n’a été généré correctement.No projects in the solution were built successfully. Corrigez les erreurs de build qui se sont produites, puis régénérez la carte.Fix the build errors that occurred and then regenerate the map.
Visual StudioVisual Studio ne répond pas quand vous essayez de générer une carte de code à partir du menu Architecture . becomes unresponsive when you try to generate a code map from the Architecture menu. Le fichier de base de données du programme (.pdb) peut être endommagé.The program database (.pdb) file might be corrupted.

Un fichier .pdb stocke des informations de débogage, telles que des informations sur le type, la méthode et le fichier source.A .pdb file stores debugging information, such as type, method, and source file information.
Régénérez la solution puis recommencez.Rebuild the solution and then try again.
Certains paramètres de la base de données de navigation IntelliSense sont désactivés.Certain settings for the IntelliSense browsing database are disabled. Certains paramètres IntelliSense peuvent être désactivés dans la boîte de dialogue Visual StudioVisual StudioOptions .Certain IntelliSense settings might be disabled in the Visual StudioVisual StudioOptions dialog box. Activez les paramètres.Turn on the settings to enable them.

Consultez Options, éditeur de texte, C/C++, avancé.See Options, Text Editor, C/C++, Advanced.
Le message Méthodes inconnues s’affiche sur un nœud de méthode.The message Unknown Methods appears on a method node.

Ce problème se produit car le nom de la méthode ne peut pas être résolu.This issue occurs because the name of the method cannot be resolved.
Le fichier binaire peut ne pas avoir de table de réadressage de base.The binary file might not have a base relocation table. Activez l’option /FIXED:NO dans l’éditeur de liens.Turn on the /FIXED:NO option in the linker.
Le fichier de base de données du programme (.pdb) peut ne pas être généré.The program database (.pdb) file might not be built.

Un fichier .pdb stocke des informations de débogage, telles que des informations sur le type, la méthode et le fichier source.A .pdb file stores debugging information, such as type, method, and source file information.
Activez l’option /DEBUG dans l’éditeur de liens.Turn on the /DEBUG option in the linker.
Impossible d’ouvrir ou de localiser le fichier .pdb aux emplacements attendus.Cannot open or find the .pdb file in the expected locations. Assurez-vous que le fichier .pdb existe dans les emplacements attendus.Make sure that the .pdb file exists in the expected locations.
Les informations de débogage ont été supprimées du fichier .pdb.Debug information has been stripped from the .pdb file. Si l’option /PDBSTRIPPED a été utilisée dans l’éditeur de liens, incluez à la place le fichier .pdb complet.If the /PDBSTRIPPED option was used in the linker, include the complete .pdb file instead.
L’appelant n’est pas une fonction ; il correspond à un thunk dans le fichier binaire ou à un pointeur dans la section de données.The caller is not a function and is either a thunk in the binary file or a pointer in the data section. Lorsque l’appelant est un thunk, essayez d’utiliser _declspec(dllimport) pour éviter le thunk.When the caller is a thunk, try using _declspec(dllimport) to avoid the thunk.

Accélérer le rendu des cartes de codeMake code maps render more quickly

Quand vous générez une carte pour la première fois, Visual Studio indexe toutes les dépendances qu’il trouve.When you generate a map for the first time, Visual Studio indexes all the dependencies that it finds. Ce processus peut prendre un certain temps, en particulier pour les solutions importantes, mais il améliore les performances ultérieures.This process might take some time, especially for large solutions, but will improve performance later. Si votre code change, Visual Studio réindexe uniquement le code mis à jour.If your code changes, Visual Studio re-indexes just the updated code. Pour réduire le temps nécessaire au rendu de la carte, considérez les points suivants :To minimize the time taken for the map to finish rendering, consider the following:

  • Créez uniquement une carte des dépendances qui vous intéressent.Map only the dependencies that interest you.

  • Avant de générer la carte pour une solution entière, limitez la portée de la solution.Before you generate the map for an entire solution, reduce the solution scope.

  • Désactivez la génération automatique de la solution à l’aide du bouton Ignorer la build situé dans la barre d’outils de la carte de code.Turn off automatic build for the solution with the Skip Build button on the code map toolbar.

  • Désactivez l’ajout automatique d’éléments parents à l’aide du bouton Inclure les parents situé dans la barre d’outils de la carte de code.Turn off automatic adding of parent items with the Include Parents button on the code map toolbar.

  • Modifiez directement le fichier de la carte de code pour supprimer les nœuds et les liens dont vous n’avez pas besoin.Edit the code map file directly to remove nodes and links you don't need. La modification de la carte n’affecte pas le code sous-jacent.Changing the map doesn't affect the underlying code. Consultez Personnaliser des cartes de code en modifiant les fichiers DGML.See Customize code maps by editing the DGML files.

    Boutons Skip Build et inclure les ParentsSkip Build and Include Parents buttons

    Bien que Visual Studio puisse fonctionner avec 1 Go de mémoire, nous recommandons que votre ordinateur ait au moins 2 Go de mémoire pour éviter des délais importants quand Visual Studio crée l’index de code et génère la carte.Although Visual Studio can run with 1 GB of memory, we recommended that your computer have at least 2 GB of memory to avoid long delays while Visual Studio creates the code index and generates the map.

    Quand la propriété Copier dans le répertoire de sortie d’un élément de projet a la valeur Toujours copier, la création de cartes ou l’ajout d’éléments à une carte à partir de l’Explorateur de solutions peut prendre plus de temps.It might take more time to create maps or add items to a map from Solution Explorer when a project item's Copy to Output Directory property is set to Copy Always. Les problèmes liés aux builds incrémentielles et à Visual Studio peuvent provoquer la régénération du projet à chaque fois.This might cause issues with incremental builds and Visual Studio to rebuild the project each time. Pour accroître les performances, remplacez la valeur de cette propriété par Copier si plus récent ou PreserveNewest.To increase performance, change this property to Copy if newer or PreserveNewest. Consultez Incremental Builds.See Incremental Builds.

    La carte terminée présente uniquement les dépendances pour le code correctement généré.The completed map will show dependencies only for successfully-built code. Si des erreurs de build se produisent pour certains composants, ces erreurs apparaissent sur la carte.If build errors occur for certain components, these errors appear on the map. Assurez-vous qu’un composant est réellement généré et qu’il a des dépendances avant de prendre des décisions architecturales basées sur la carte.Make sure that a component actually builds and has dependencies on it before you make architectural decisions based on the map.

Partager des cartes de codeShare code maps

Partager la carte avec d’autres utilisateurs de Visual StudioShare the map with other Visual Studio users

Utilisez le menu Fichier pour enregistrer la carte.Use the File menu to save the map.

- ou --or-

Pour enregistrer la carte dans le cadre d’un projet spécifique, dans la barre d’outils de la carte, choisissez Partager, puis Déplacer <CodeMapName>.dgml vers, puis choisissez le projet dans lequel vous souhaitez enregistrer la carte.To save the map as part of specific project, on the map toolbar, choose Share, Move <CodeMapName>.dgml into, and then choose the project where you want to save the map.

Déplacer une carte dans un autre projetMove a map into another project

Visual Studio enregistre la carte en tant que fichier .dgml que vous pouvez partager avec d’autres utilisateurs de Visual Studio Enterprise et de Visual Studio Professional.Visual Studio saves the map as a .dgml file that you can share with other users of Visual Studio Enterprise and Visual Studio Professional.

Note

Avant de partager une carte avec les utilisateurs de Visual Studio Professional, veillez à développer tous les groupes, à afficher les nœuds masqués et les liens entre les groupes, et à récupérer les nœuds supprimés que vous souhaitez afficher sur la carte.Before you share a map with those who use Visual Studio Professional, make sure to expand any groups, show hidden nodes and cross-group links, and retrieve any deleted nodes that you want others to see on your map. Sinon, les utilisateurs ne pourront pas afficher ces éléments.Otherwise, other users won't be able to see these items.

L’erreur suivante peut se produire quand vous enregistrez une carte se trouvant dans un projet de modélisation ou ayant été copiée à partir d’un projet de modélisation vers un autre emplacement :The following error might occur when you save a map that is in a modeling project or was copied from a modeling project to another location:

« Impossible d’enregistrer fileName en dehors du répertoire du projet."Cannot save fileName outside the project directory. Les éléments liés ne sont pas pris en charge. »Linked items are not supported."

Visual Studio affiche l’erreur, mais crée quand même la version enregistrée.Visual Studio shows the error, but creates the saved version anyway. Pour éviter cette erreur, créez la carte en dehors du projet de modélisation.To avoid the error, create the map outside the modeling project. Vous pouvez ensuite l’enregistrer à l’emplacement que vous souhaitez.You can then save it to the location that you want. Le fait de copier le fichier vers un autre emplacement de la solution, puis de tenter de l’enregistrer, ne fonctionnera pas.Just copying the file to another location in the solution, and then trying to save it will not work.

Exporter la carte en tant qu’image pour pouvoir la copier dans d’autres applications, telles que Microsoft Word ou PowerPointExport the map as an image so you can copy it into other applications, such as Microsoft Word or PowerPoint

  1. Dans la barre d’outils de la carte de code, choisissez Partager, Envoyer par courrier électronique en tant qu’image ou Copier l’image.On the code map toolbar, choose Share, Email as Image or Copy Image.

  2. Collez l’image dans une autre application.Paste the image into another application.

Exporter la carte en tant que fichier XPS pour pouvoir la voir dans des visionneuses XML ou XAML comme Internet ExplorerExport the map as an XPS file so you can see it in XML or XAML viewers like Internet Explorer

  1. Dans la barre d’outils de la carte de code, choisissez Partager, Envoyer par courrier électronique en tant que XPS portable ou Enregistrer en tant que XPS portable.On the code map toolbar, choose Share, Email As Portable XPS or Save As Portable XPS.

  2. Accédez à l’emplacement auquel enregistrer le fichier.Browse to where you want to save the file.

  3. Nommez la carte de code.Name the code map. Assurez-vous que le enregistrer en tant que type zone est définie sur fichiers XPS (*.xps).Make sure that the Save as type box is set to XPS files (*.xps). Choisissez Enregistrer.Choose Save.

Que puis-je faire d’autre ?What else can I do?