Freigeben über


Visualisieren von Codeabhängigkeiten in Abhängigkeitsdiagrammen

Um die Organisation des Codes und die Abhängigkeiten zu finden und zu verstehen, können Sie Abhängigkeitsdiagramme Visual Studio Ultimate erstellen.Was sind Abhängigkeitsdiagramme und wie sie sind hilfreich?

Unterstützte Projekte:

  • Projekte Visual C# .NET und Visual Basic .NET., einschließlich Windows Store-Apps und Assemblydateien (DLL- oder EXE-Datei).

  • Visual C++-Projekte, einschließlich Windows Store-Apps, die C- oder C++-Code (verwaltete oder systemeigene), Headerdateien (.h oder #include), und Binärdateien.

Videos:

In diesem Thema

  • Wie fange ich an?

  • Visuelles Darstellen von Abhängigkeiten im Code

  • Freigabenabhängigkeitsdiagramme

  • Generieren Sie Diagramme für die Batchverarbeitung

  • Problembehandlung

Wie fange ich an?

  • Rufen Sie eine Übersicht der Projektmappe ab: Klicken Sie im Menü Architektur wählen Sie Abhängigkeitsdiagramm generieren, Für Projektmappe aus.

    Rufen Sie ein Diagramm ab, das die Assemblys der obersten Ebene angezeigt.Sie können die Assemblys jetzt untersuchen, indem Sie sie erweitern.Bewegen Sie den Mauszeiger auf eine Assembly, und wählen Sie dann die Schaltfläche des Chevrons (^) aus, wenn sie angezeigt wird.Führen Sie gleich, sodass Namespaces, Typen und Member zum Untersuchen des Codes fortsetzen.

    Assembly-Abhängigkeitsdiagramm der ersten Ebene

    Um Abhängigkeiten über Gruppen anzuzeigen, wählen Sie ein Element im Diagramm.

    Diagramm mit ausgewählten Elementen und erweiterten Gruppen

    Weitere Informationen finden Sie unter Rufen Sie eine Übersicht der Projektmappe ab.Sie können Analyzer ausführen, um potenzielle Probleme im Code zu suchen.Siehe Ermitteln potenzieller Probleme in Code in Abhängigkeitsdiagrammen.

  • Visualisieren Sie bestimmte Abhängigkeiten in der Projektmappe dar: In Projektmappen-Explorer ausgewählte Elemente, die für Sie interessanten.Sie können Projekte, Assemblyverweise, Ordner, Dateien, Typen und Member auswählen.Um ein bestimmtes Element zu suchen, verwenden Sie das Projektmappen-Explorer Suchfeld.

    Klicken Sie auf der Symbolleiste Projektmappen-Explorer wählen Sie Neues Diagrammdokument erstellenSchaltfläche zum Erstellen eines neuen Diagramms aus ausgewählten Knoten aus.

    - oder -

    Ziehen Sie die Elemente aus Projektmappen-Explorer zu einem vorhandenen Diagramm.

    TippTipp

    Um ein leeres Diagramm, in dem Menü Datei zu erstellen, wählen Sie Neu, Datei, Dokument mit gerichtetem Diagramm.Um die Elemente Hierarchie für die Elemente auszuwählen, halten Sie die STRG Schlüssel während Sie Elemente ziehen.

    Rufen Sie ein Diagramm ab, das die ausgewählten Elemente angezeigt werden.Sie können diese Elemente jetzt untersuchen, indem Sie sie erweitern.Bewegen Sie den Mauszeiger auf ein Element, und wählen Sie dann die Schaltfläche des Chevrons (^) aus, wenn sie angezeigt wird.

    Weitere Informationen finden Sie unter Visualisieren Sie bestimmte Abhängigkeiten in der Projektmappe dar.Sie können Analyzer ausführen, um potenzielle Probleme im Code zu suchen.Siehe Ermitteln potenzieller Probleme in Code in Abhängigkeitsdiagrammen.

Was sind Abhängigkeitsdiagramme und wie sie sind hilfreich?

Abhängigkeitsdiagramme stellen eine visuelle Möglichkeit, damit Code überprüfen und ihre Abhängigkeiten verstehen, ohne zu müssen, von Dateien und Codezeilen zu suchen.Sie können Elemente und Beziehungen als nur Knoten und Links oder Pfeile finden.Angenommen, Sie haben eine Codeüberprüfung, auszuführen.Sie haben einen Satz von Dateien, die ausstehende Änderungen enthalten.Sie können den Code und die Abhängigkeiten für diese Änderungen visuell darstellen, indem Sie ein Abhängigkeitsdiagramm aus diesen Dateien erstellen.Siehe Visualisieren Sie bestimmte Abhängigkeiten in der Projektmappe dar.

Standardmäßig werden Containerbeziehungen als Gruppen dargestellt, die Sie erweitern und reduzieren können.

Abhängigkeitsdiagramm mit gruppierten Knoten

TippTipp

Die Schaltfläche Untergeordnete Elemente erneut abrufenSymbol „Untergeordnete Elemente erneut abrufen“ können Sie Gruppenelemente abrufen, die im Code vorhanden sind, jedoch wird nicht im Diagramm.Es ist auch ein anderes Format zu den Aufrufslinks angewendet, sodass Sie es leicht erkennen.Siehe Bearbeiten und Anpassen von Abhängigkeitsdiagrammen.

Sie können Containerbeziehungen als Links anzeigen.Öffnen Sie das Kontextmenü für das Diagramm, wählen Sie Gruppe, Gruppierung deaktivieren aus:

Abhängigkeitsdiagramm mit Knoten und Links

Sie können Analyzer ausführen, um potenzielle Probleme im Code zu suchen.Siehe Ermitteln potenzieller Probleme in Code in Abhängigkeitsdiagrammen.

Wenn Sie ein Abhängigkeitsdiagramm das erste Mal generieren, indiziert Visual Studio alle Abhängigkeiten, die es findet.Dieser Prozess Vorgang kann einige Zeit in Anspruch nehmen, insbesondere für große Projektmappen oder Diagramme mit vielen Links.der Index jedoch verbessert die Leistung von späteren Vorgängen.Wenn die Codeänderungen, Visual Studio nur den aktualisierten Code neu indexiert.

Wenn Sie nicht auf das Diagramm warten möchten, um zu generieren zu beenden, können Sie diesen Schritt jederzeit abbrechen und die folgenden Vorschläge versuchen:

  • Diagramm nur die Abhängigkeiten, die für Sie interessanten.

  • Bevor Sie das Diagramm für eine vollständige Projektmappe generieren, reduzieren Sie den vereinbarte.

Obwohl Visual Studio mit 1 GB Arbeitsspeicher ausgeführt werden kann, empfiehlt sich wird, dass der Computer mindestens 2 GB Arbeitsspeicher verfügen, um bei langen Verzögerungen zu vermeiden, während Visual Studio den Kennziffernplan erstellt und das Diagramm generiert.

HinweisHinweis

Visual Studio generiert ein Diagramm wenn mindestens die Builds mit einen Projekten erfolgreich.Es werden nur die Abhängigkeiten für Code, der erfolgreich erstellt.Wenn für bestimmte Komponenten Buildfehler auftreten, werden Fehler für diese Komponenten im Diagramm.Stellen Sie sicher Builds einer Komponente tatsächlich und Abhängigkeiten besitzt, bevor Sie auf Grundlage des Diagramms architekturbezogene Entscheidungen treffen.

Sie könnte mehr Zeit, Diagramme zu erstellen oder einem Diagramm Elemente aus dem Projektmappen-Explorer hinzuzufügen, wenn In Ausgabeverzeichnis kopieren-Eigenschaft eines Projektelements zu Immer kopieren festgelegt ist.Dadurch gehen möglicherweise Probleme mit inkrementellen Builds und Visual Studio, das Projekt jedes Mal neu zu erstellen.Um die Leistung zu erhöhen, ändern Sie diese Eigenschaft auf Kopieren, wenn neuer oder zu PreserveNewest.Siehe Inkrementelle Builds.

Visuelles Darstellen von Abhängigkeiten im Code

  • Rufen Sie eine Übersicht über des Codes ab

  • Visualisieren Sie bestimmte Abhängigkeiten im Code dar

  • Visualisieren Sie Abhängigkeiten zwischen C oder C++-Quelldateien und Headerdateien dar

  • Generieren Sie Diagramme für die Batchverarbeitung, indem Sie GraphCmd.exe verwenden

TippTipp

Um mehr vollständige Graphen für C++-Projekte zu generieren, muss die durchsuchensinformationscompileroption (/FR) für diese Projekte festgelegt werden.Andernfalls wird eine Meldung und fordert Sie auf, um diese Option festzulegen.Wenn die Meldung angezeigt wird, können Sie die Option nur für das aktuelle Diagramm festlegen, indem Sie OK auswählen, oder Sie können die Option festlegen und die Meldung für alle ausblenden später Diagramme.Um die Meldung für die Diagramme angezeigt werden, den folgenden Registrierungsschlüssel zu 0 festlegen oder die Schlüssel löschen:

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

Siehe /FR, /Fr (SBR-Datei erstellen).

Rufen Sie eine Übersicht über des Codes ab

Sie können ein Abhängigkeitsdiagramm für die gesamte Projektmappe oder für Assemblys oder Binärdateien erstellen.

Dd409453.collapse_all(de-de,VS.110).gifRufen Sie eine Übersicht der Projektmappe ab

  1. Klicken Sie im Menü Architektur wählen Sie Abhängigkeitsdiagramm generieren, Für Projektmappe aus.

    Rufen Sie ein Diagramm ab, das die Assemblys der obersten Ebene und die aggregierten Links zwischen diesen anzeigt.Die Stärke eines gesamten Links gibt an, wie viele einzelne Abhängigkeiten der Link darstellt.Die Gruppe Extern enthält alle außerhalb der Projektmappe, einschließlich Plattformabhängigkeiten.Externe Assemblys werden nur Elemente angezeigt, die verwendet werden.

    Assembly-Abhängigkeitsdiagramm der ersten Ebene

  2. Sie können die Assemblys jetzt untersuchen, indem Sie sie erweitern.Bewegen Sie den Mauszeiger auf eine Assembly, und wählen Sie dann die Schaltfläche des Chevrons (^) aus, wenn sie angezeigt wird.(Tastatur: Wählen Sie das Element aus, wählen Sie die PLUS Schlüssel (+) aus.) Führen Sie gleich, sodass Namespaces, Klassen und Member zum Untersuchen des Codes fortsetzen.

  3. Weitere Informationen über ein Element oder einen Link abzurufen, bewegen Sie den Zeiger auf das Element auf eine QuickInfo angezeigt.

  4. Um die Elemente und Abhängigkeiten zu überprüfen, die von einem Aggregatlink dargestellt werden, wählen Sie zuerst den Link aus, und öffnen Sie dann das Kontextmenü.Wählen Sie Anzeigen, Zugehörige Links im aktuellen Diagramm oder Zugehörige Links in einem neuen Diagramm aus.

    Visual Studio erweitert die Gruppen an beiden Enden des Links und zeigt nur die Elemente und Abhängigkeiten an, die am Link teilnehmen.Um Elemente zu finden sind die im Code jedoch aus einer Gruppe fehlen, wählen Sie Untergeordnete Elemente erneut abrufenSymbol „Untergeordnete Elemente erneut abrufen“.

Thema

Dd409453.collapse_all(de-de,VS.110).gifRufen Sie eine Übersicht über Assemblys oder von Binärdateien ab

  • Erstellen Sie ein leeres Diagramm oder öffnen Sie ein vorhandenes Diagramm (DGML-Datei).Klicken Sie im äußeren Visual Studio ziehen Sie die Assemblys oder Binärdateien in das Diagramm.

    HinweisHinweis

    Sie können Assemblys oder Binärdateien von Explorer in nur, wenn Sie Windows-Explorer und Visual Studio auf der gleichen Berechtigungsstufe der Benutzerkontensteuerung (UAC) ausführen.Beispielsweise wenn UAC aktiviert ist, und führen Sie Visual Studio als Administrator aus, dann blockiert.Um dies zu arbeiten, stellen Sie sicher Visual Studio als Administrator ausgeführt wird, oder Drehung UAC weg.Beachten Sie das in Windows 8, Windows Explorer ist Datei-Explorer.

    - oder -

    1. Klicken Sie im Menü Architektur wählen Sie Fenster, Architektur-Explorer aus.

    2. In der ersten Spalte unter Dateisystem, wählen Sie Dateien auswählen aus.

    3. Im Feld Öffnen die Suche und die Assemblys oder Binärdateien aus.Wählen Sie Öffnen, um sie der nächsten Spalte in Architektur-Explorer hinzuzufügen.

    4. In Architektur-Explorer wählen Sie die Assemblys oder Binärdateien aus.

    5. Klicken Sie auf der rechten Seite der Spalte, die die ausgewählten Assemblys oder Binärdateien enthält, wählen Sie die reduzierte Aktionsspalte, um sie zu erweitern.

      TippTipp

      Die reduzierte Aktionsspalte wird hervorgehoben, wenn Sie den Mauszeiger darauf verschieben.

    6. In der Aktionsspalte unter Befehle, wählen Sie Öffnen, um ein Abhängigkeitsdiagramm zu generieren.

      Siehe Suchen von Code im Architektur-Explorer.

Dd409453.collapse_all(de-de,VS.110).gifSo fügen Sie ein leeres Diagramm erstellen

  1. Um ein neues leeres Diagramm ohne es der Projektmappe, auf dem Menü Datei hinzuzufügen zu öffnen, wählen Sie Neu, Datei.

    - oder -

    Um ein leeres Diagramm dem Ordner Projektmappenelemente in der Projektmappe hinzuzufügen, öffnen Sie das Kontextmenü für den Projektmappenknoten der obersten Ebene.Wählen Sie Hinzufügen, Neues Element aus.

  2. Die Installiert wählen Sie Allgemein aus.

  3. Wählen Sie im rechten Bereich Dokument mit gerichtetem Diagramm aus.

    Sie können ein leeres Diagramm einem Modellierungsprojekt vom Menü Architektur hinzufügen, indem Sie Neues Diagramm auswählen.

Visualisieren Sie bestimmte Abhängigkeiten im Code dar

Sie können ein Abhängigkeitsdiagramm für bestimmte Elemente in der Projektmappe oder in in Assemblys und in den Binärdateien erstellen.

Visualisieren Sie bestimmte Abhängigkeiten in der Projektmappe dar

So visualisieren Sie einen bestimmten Code

So visualisieren Sie einen bestimmten Code und übergeordneten Code

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

  1. In Projektmappen-Explorer ausgewählte Elemente, die für Sie interessanten.Sie können Projekte, Assemblyverweise, Ordner, Dateien, Typen und Member auswählen.Um ein bestimmtes Element zu suchen, verwenden Sie das Projektmappen-Explorer Suchfeld.

    TippTipp

    Um Elemente mit Abhängigkeiten für Typen oder Member zu suchen, öffnen Sie das Kontextmenü für den Typ oder Member in Projektmappen-Explorer.Wählen Sie den Abhängigkeitstyp aus.Projektmappen-Explorer werden Elemente angezeigt, die die Abhängigkeit, haben, die Sie angegeben haben.Wählen Sie die Ergebnisse aus.

  2. Um die Elemente und ihre Member, auf der Symbolleiste Projektmappen-Explorer grafisch darstellen möchten, verwenden Sie Neues Diagrammdokument erstellenSchaltfläche zum Erstellen eines neuen Diagramms aus ausgewählten Knoten.

    - oder -

    Um die Elemente Hierarchie im Diagramm einzuschließen, öffnen Sie die Erstellen Sie ein neues Diagrammdokument… Liste auf der Symbolleiste Projektmappen-Explorer, wählen Sie Neues Abhängigkeitsdiagramm mit übergeordneten Elementen aus.

    TippTipp

    Sie können Elemente in das Diagramm ziehen.Zuerst öffnen erstellen Sie ein leeres Diagramm oder ein vorhandenes Diagramm (DGML-Datei).Um die Elemente Containerhierarchie einzuschließen, halten Sie die STRG Schlüssel während Sie die Elemente ziehen.

    Rufen Sie ein Diagramm ab, das die ausgewählten Elemente angezeigt werden.

  3. Um Elemente zu untersuchen, können Sie sie erweitern.Bewegen Sie den Mauszeiger auf ein Element, und wählen Sie dann die Schaltfläche des Chevrons (^) aus, wenn sie angezeigt wird.Um alle Elemente zu erweitern, öffnen Sie das Kontextmenü für das Diagramm.Wählen Sie Gruppe, Alle erweitern aus.

    HinweisHinweis

    Dieser Befehl ist nicht verfügbar, wenn das Erweitern aller Gruppen Probleme unbrauchbaren eines Diagramms oder des Arbeitsspeichers generiert.

  4. Um die Elemente, die von einer Gruppe abzurufen fehlen, wählen Sie Untergeordnete Elemente erneut abrufenSymbol „Untergeordnete Elemente erneut abrufen“ in der Gruppe.

  5. Um mehr Elemente anzuzeigen, die zu den im Diagramm verknüpft werden, öffnen Sie das Kontextmenü für das Element.Wählen Sie Anzeigen und die Beziehung der Elemente aus, die für Sie interessanten.

    Eine Assembly wählen Sie aus:

    Assemblys, auf die verwiesen wird

    Fügen Sie Assemblys hinzugefügt, die dieses Assemblyverweise.Externe Assemblys werden in der Gruppe Extern.

    Verweisen auf Assemblys

    Fügen Sie Assemblys in der Projektmappe hinzu, die diese verweisen.

    Für eine Klasse wählen Sie aus:

    Basistypen

    Eine Klasse fügen Sie die Basisklasse und die implementierten Schnittstellen hinzu.

    Für eine Schnittstelle fügen Sie die Basisschnittstellen hinzu.

    Abgeleitete Typen

    Eine Klasse fügen Sie die abgeleiteten Klassen hinzu.

    Für eine Schnittstelle fügen Sie die abgeleiteten Schnittstellen und die implementierenden Klassen oder die Strukturen hinzu.

    Alle Basistypen

    Fügen Sie die Basisklassen- oder Schnittstellenhierarchie rekursiv hinzu.

    Alle abgeleiteten Typen

    Eine Klasse fügen Sie alle abgeleiteten Klassen rekursiv hinzu.

    Für eine Schnittstelle fügen Sie alle abgeleiteten Schnittstellen und rekursiv implementieren Klassen oder Strukturen hinzu.

    Kapselungshierarchie

    Fügen Sie die Elemente Containerhierarchie hinzu.

    Verwendete Typen

    Fügen Sie alle Klassen und ihre Member hinzu, die diese Klasse verwendet.

    Verwendete-Durch Typen

    Fügen Sie alle Klassen und ihre Member hinzu, die diese Klasse verwenden.

    Eine Methode wählen Sie aus:

    Kapselungshierarchie

    Fügen Sie die Elemente Containerhierarchie hinzu.

    Aufgerufene Methods

    Hinzufügen von Methoden, die dieses.

    Aufgerufene-Durch Methoden

    Hinzufügen von Methoden, die diese Methode aufrufen.

    Überschriebene Methoden in den Basistypen

    Eine Methode, die andere Methoden überschreibt oder die Methode einer Schnittstelle implementiert, fügen Sie alle abstrakten oder virtuellen Methoden in den Basisklassen, die überschrieben und (sofern vorhanden) in der - Methode der - Schnittstelle hinzu, die implementiert werden.

    Relevante Felder

    Fügen Sie Felder hinzu, die diese Methode verweist.

    Ein Feld wählen Sie aus:

    Kapselungshierarchie

    Fügen Sie die Elemente Containerhierarchie hinzu.

    Verweisen auf Methoden

    Hinzufügen von Methoden, die dieses Feld verweisen.

Thema

Dd409453.collapse_all(de-de,VS.110).gifVisualisieren Sie bestimmte Abhängigkeiten in Assemblys oder in den Binärdateien dar

  1. Klicken Sie im Menü Architektur wählen Sie Fenster, Architektur-Explorer aus.

  2. In der ersten Spalte unter Dateisystem, wählen Sie Dateien auswählen aus.

  3. Im Feld Öffnen die Suche und die Assemblys oder Binärdateien aus.Wählen Sie Öffnen, um sie der nächsten Spalte in Architektur-Explorer hinzuzufügen.

  4. Wählen Sie in der nächsten Spalte die Assemblys oder Binärdateien aus.

    Standardmäßig werden in der nächsten Spalte die Elemente an, die von der ausgewählten Elemente enthalten sind.

    TippTipp

    Um andere verwandte Elemente auszuwählen, erweitern Sie die reduzierte Spalte rechts neben der Spalte mit Ihrer Wahl.Die Knotennavigation wählen Sie die Arten von Elementen aus, die für Sie interessanten.Die Ausgehende Navigation oder Eingehende Navigation wählen Sie die Beziehungen aus, die für Sie interessanten.Siehe Suchen von Code im Architektur-Explorer.

  5. Suchen Sie alle Elemente aus, die Sie das Diagramm an speichern soll.

  6. Um ein neues Diagramm, auf der Symbolleiste Architektur-Explorer zu erstellen, wählen Sie Neues Diagrammdokument aus allen ausgewählten Knoten erstellenSchaltfläche zum Erstellen eines neuen Diagramms aus ausgewählten Knoten.

    Visual Studio erstellt das Diagramm und öffnet es.

    - oder -

    Um die Auswahl einem Diagramm hinzuzufügen, führen Sie folgende Schritte aus:

    1. Öffnen Sie die DGML-Datei des Diagramms oder erstellen Sie ein leeres Diagramm.

    2. Klicken Sie auf der Symbolleiste Architektur-Explorer wählen Sie Fügen Sie dem derzeit sichtbaren Diagrammdokument alle ausgewählten Knoten hinzuAlle ausgewählten Knoten zu Diagrammschaltfläche hinzufügen aus.

      - oder -

      Ziehen Sie Elemente aus Architektur-Explorer in das Diagramm.

Visualisieren Sie Abhängigkeiten zwischen C und C++-Quelldateien und Headerdateien dar

Darzustellende Abhängigkeiten

Vorgehensweise

Alle Quelldateien und Headerdateien in der Projektmappe

Klicken Sie im Menü Architektur wählen Sie Abhängigkeitsdiagramm generieren, Für Includedatei aus.

Abhängigkeitsdiagramm für systemeigenen Code

Die gegenwärtig geöffneten Datei und die zugehörigen Quelldateien und Headerdateien

  1. Öffnen Sie eine Quelldatei oder eine Headerdatei.

  2. Öffnen Sie das Kontextmenü innerhalb der Datei.Wählen Sie Diagramm für Includedateien generieren aus.

Abhängigkeitsdiagramm der ersten Ebene für H-Datei
HinweisHinweis

Wenn Sie eine Projektmappe öffnen, die Visual C++-Projekte enthält, könnte sie einige Zeit, die IntelliSense-Datenbank zu aktualisieren.Während dieser Zeit sind Sie nicht in der Lage, Abhängigkeitsdiagramme für Dateien des Headers zu erstellen (.h oder #include), bis die IntelliSense-Datenbank beendet zu aktualisieren.Sie können den Aktualisierungsstatus in der Visual Studio-Statusleiste überwachen.Um Probleme zu beheben oder Meldungen werden die da bestimmte IntelliSense-Einstellungen deaktiviert werden, finden Sie unter Problembehandlung.

Freigabenabhängigkeitsdiagramme

Speichern Sie das Diagramm mit anderen Benutzern von Visual Studio frei

  • Verwenden Sie das Menü Datei, um das Diagramm zu speichern.

    - oder -

    Um das Diagramm als Teil des bestimmten Projekt zu speichern, öffnen Sie das Kontextmenü für die Diagrammoberfläche.Wählen Sie Verschieben <DependencyGraphName.dgml> into und das Projekt aus, wobei Sie das Diagramm speichern möchten.

    Visual Studio speichert das Diagramm als DGML-Datei, die Sie für andere Benutzer von Visual Studio Ultimate, Visual Studio Premium und Visual Studio Professional freigeben können.

    HinweisHinweis

    Bevor Sie ein Diagramm mit denen freigeben, die Visual Studio Premium und Visual Studio Professional verwenden, vergewissern Sie sich, alle Gruppen zu erweitern, ausgeblendete Knoten und gruppenübergreifende Links anzuzeigen, und alle gelöschten Knoten zu erhalten, die Sie andere auf dem Diagramm finden möchten.Andernfalls sind andere Benutzer nicht in der Lage, diese Elemente anzuzeigen.

    Wenn Sie ein Diagramm speichern, das sich in einem Modellierungsprojekt befindet oder von einem Modellierungsprojekt an einen anderen Speicherort kopiert wurde, tritt möglicherweise der folgende Fehler auf.

    "Dateiname kann nicht außerhalb des Projektverzeichnisses gespeichert werden.Verknüpfte Elemente werden nicht unterstützt."

    Visual Studio zeigt den Fehler an, die gespeicherte Version wird aber dennoch erstellt.Erstellen Sie das Diagramm außerhalb des Modellierungsprojekts, um diesen Fehler zu vermeiden.Sie können es anschließend am gewünschten Speicherort speichern.Es wird nicht funktionieren, die Datei einfach an eine andere Position in der Projektmappe zu kopieren und dort zu speichern.

Exportieren Sie das Diagramm als Bild, sodass Sie es in andere Anwendungen, wie Microsoft Word oder PowerPoint kopieren können

  1. Öffnen Sie das Kontextmenü für die Diagrammoberfläche.Wählen Sie Bearbeiten, Bild kopieren aus.

  2. Fügen Sie das Bild in eine andere Anwendung ein.

Exportieren Sie das Diagramm, wie eine XPS-Datei daher Sie es in XML- oder XAML-Viewern wie Internet Explorer finden können

  1. Öffnen Sie das Kontextmenü auf der Diagrammoberfläche.Wählen Sie Als XPS speichern aus.

  2. Im Dialogfeld Speichern unter navigieren Sie zu, wobei Sie die Datei speichern möchten.

  3. Benennen Sie das Diagramm.Stellen Sie sicher, dass das Feld Dateityp zu XPS-Dateien (*.xps) festgelegt ist.Wählen Sie Speichern aus.

Generieren Sie Diagramme für die Batchverarbeitung

Sie können Diagrammdokumente (DGML-Dateien) im Batchmodus generieren, indem Sie das GraphCmd.exe Befehlszeilentool verwenden.Beispielsweise können Sie das Tool ausführen nach jedem Build, um Abhängigkeiten zu suchen, die zwischen Builds geändert haben.Dieses Tool befindet sich im folgenden Ordner: C:\Programme\Microsoft Visual Studio 11.0\Common7\IDE.

HinweisHinweis

GraphCmd.exe unterstützt nur .NET-Code und generiert nur Abhängigkeitsinformationen für Assemblys und DGML-Dateien, nicht Quellcode in der Visual Studio-Projektmappe oder Projektdateien.GraphCmd.exe führt äußeren Visual Studio aus, sodass Unterstützung für Aktionen in DGQL-Abfragen eingeschränkt.

Verwenden Sie die folgende Syntax für GraphCmd.exe:

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

TippTipp

Die folgenden Optionen können mehrmals angegeben werden: -input, -query, -exec und -path.

In der folgenden Tabelle werden die Optionen für GraphCmd.exe beschrieben:

-?

Zeigt die Hilfe für GraphCmd.exe an.

-all

Schließt alle Zwischenergebnisse von Abfragen ein, nicht nur für die letzte Knotengruppe.

-exceptions

Erstellt einen Bericht über Abfrageausnahmen in einem Diagrammdokument (DGML-Datei).

-input File_Name

Verarbeitet die angegebene DGML-Datei.

Dies ist für die Nachverarbeitung eine große DGML-Datei und Filtern als nützlich, damit Sie diese in Visual Studio leicht visuell darstellen können.

-query File_Name

Führt die angegebene DGQL (Directed Graph Query Language)-Datei aus.

Thema

-exec "DGQL_Statement"

Führt die angegebene DGQL-Anweisung aus.

Siehe Grundlegendes zur Directed Graph Query Language (DGQL).

-output File_Name

Gibt die angegebene DGML-Datei aus.

-path alias=path

Geben Sie einen neuen Alias an, der in der Eingabe und der Ausgabe von DGML-Dokumenten verwendet werden soll.

Beispiel:

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

Siehe Aliase für häufig verwendete Pfade.

Dd409453.collapse_all(de-de,VS.110).gifAliase für häufig verwendete Pfade

Aliase für häufig verwendete Pfade tragen dazu bei, die Größe der DGML-Datei und die erforderliche Zeit zum Laden und Speichern der Datei zu reduzieren.Fügen Sie zum Erstellen eines Alias am Ende der DGML-Datei einen <Paths></Paths>-Abschnitt hinzu.Fügen Sie in diesem Abschnitt ein <Path/>-Element hinzu, um einen Alias für den Pfad zu definieren:

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

Um von einem Element in der DGML-Datei auf den Alias zu verweisen, schließen Sie die Id des <Path/>-Elements in ein Dollarzeichen ($) und Klammern (()) ein:

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

Um DGML-Dateien zu bearbeiten, finden Sie unter Bearbeiten und Anpassen von Abhängigkeitsdiagrammen.

Dd409453.collapse_all(de-de,VS.110).gifGrundlegendes zur Directed Graph Query Language (DGQL)

DGQL ist eine einfache Abfragesprache, mit der Sie DGML erstellen können.Eine DGQL-Anweisung folgt einem abwechselnden Muster von Knotenauswahl und Aktionen, sodass durch jede Knotenauswahl die Eingabe für die nächste Aktion erstellt wird, deren Ausgabe wiederum zur Eingabe der nächsten Knotenauswahl wird, usw.

Eine DGQL-Anweisung liegt in folgendem Format vor:

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

In der folgenden Tabelle wird die DGQL-Syntax zum Auswählen von Knoten beschrieben:

*

Wählt alle Knoten aus.

+ "text"

Wählt alle Knoten aus, die "text" enthalten.

+ Id.Equals("text")

Wählt alle Knoten aus, deren Id gleich "text" ist.

+ Background.Contains("text")

Wählt alle Knoten aus, deren Background-Attribut über einen Wert verfügt, der die Zeichenfolge "text" enthält.

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

Wählt alle Knoten aus, die mit "text1" oder "text2" übereinstimmen.

+ MyProperty="True"

Wählt alle Knoten aus, die über eine Eigenschaft mit dem Namen MyProperty verfügen, deren Wert "True" ist.

- Label.Contains("text")

Wählt alle Knoten mit Ausnahme der Knoten aus, die über ein Label-Attribut verfügen, das die Zeichenfolge "text" enthält (Contains).

+ Category.Is("MyCategory")

Wählt alle Knoten aus, die über eine Kategorie mit dem Namen MyCategory bzw. eine Kategorie verfügen, die von MyCategory erbt.

In der folgenden Tabelle werden Beispiele für direkte Aktionen beschrieben, die für ausgewählte Knoten ausgeführt werden können:

Beispielaktion

Description

Microsoft.Contains

Gibt alle Knoten zurück, die in den Eingabeknoten enthalten sind.Sie können Contains durch eine andere Linkkategorie ersetzen.

Microsoft.Open

Öffnet den Quellcode für die Eingabeknoten.

HinweisHinweis
Funktioniert nur innerhalb von Visual Studio.

Microsoft.AllOutBoundLinks

Gibt alle Knoten zurück, die das Ziel eines von den Eingabeknoten ausgehenden Links sind.

Microsoft.AllInboundLinks

Gibt alle Knoten zurück, die das Quellende eines Links zu den Eingabeknoten sind.

Microsoft.Core.CreateGroupsByProperties

Ruft die GroupByProperties-Aktion auf.

Microsoft.AllNodes

Gibt alle Knoten im gesamten Diagramm bis zu dieser Position zurück.

Von datengesteuerten Aktionen werden Elemente lediglich auf der Grundlage der Daten in den Eingabeknoten und Links ausgewählt.Beim Vergleichen von Kategorien mit datengesteuerten Aktionen werden geerbte Kategorien eingeschlossen.In der folgenden Tabelle werden Beispiele für datengesteuerte Aktionen beschrieben:

Text [Type]

Description

Node:Both:Category

Gibt alle Knoten zurück, die über die Kategorie Category verfügen und mit den Eingabeknoten über einen Link verbunden sind, der in beide Richtungen zeigt.

Link:Both:Category

Gibt alle Knoten zurück, die mit den Eingabeknoten über einen Link verbunden sind, der in beide Richtungen zeigt und der die Kategorie Category aufweist.

Link:Backward:Category

Gibt alle Knoten zurück, die auf die Eingabeknoten mit einem Link zeigen, der die Kategorie Category aufweist.

Link:Forward:Category

Gibt alle Knoten zurück, die von den Eingabeknoten mit einem Link zeigen, der die Kategorie Category aufweist.

Dd409453.collapse_all(de-de,VS.110).gifTipps

  • In der Regel gibt es für eine bestimmte Gruppe von Eingabeknoten eine "Standardaktion", die vom Architektur-Explorer automatisch ausgewählt wird.Wenn Sie dasselbe Verhalten erhalten möchten, verwenden Sie eine leere Aktion: //

  • Leerzeichen sind in DGQL irrelevant, sodass Sie Abfragen so formatieren können, dass sie ggf. auf eine Zeile passen.Dies ist hilfreich, wenn Sie die –exec-Option mit GraphCmd verwenden.

  • Verwenden Sie beim Debuggen von DGQL die Aktion "Execute Expanded" im Architektur-Explorer, sodass Sie jeden einzelnen Schritt der Abfrage verfolgen und Schritte erkennen können, die nicht die erwarteten Ergebnisse liefern.

Dd409453.collapse_all(de-de,VS.110).gifBeispiel

Die folgende DGQL-Anweisung führt eine Abfrage entsprechend der Beschreibung in den unten stehenden Schritten aus:

+ Id.Equals("Microsoft.Solution.ClassView") / "Microsoft.Solution.ClassView" / * / "Node:Both:CodeSchema_Class" / + CodeSchemaProperty_IsPublic.Equals("True")
  1. Wählen Sie den Knoten Klassenansicht in der ersten Spalte des Architektur-Explorer aus.

  2. Führen Sie die Aktion "Microsoft.Solution.ClassView" aus und alle Namespaces in der Projektmappe zurückgeben. 

  3. Verwenden Sie *, um alle Namespaces auszuwählen.

  4. Wählen Sie alle Knoten mit der Kategorie CodeSchema_Class aus, und die durch einen Link in eine beliebige Richtung mit diesen Namespaces verknüpft sind.Diese sind normalerweise Links mit Kapselungsbeziehungen.

  5. Filtern Sie die erhaltenen Klassen, um nur die Klassen mit der Eigenschaft CodeSchemaProperty_IsPublic="True" zu erhalten.

In technischer Hinsicht ist die Aktion "Microsoft.Solution.ClassView" nicht erforderlich, da es sich hierbei um die "Standardaktion" für den Knoten Klassenansicht handelt.Daher können Sie diese Aktion durch // ersetzen, um die Abfrage zu vereinfachen und sie wie folgt auf einer einzelnen Zeile zu formatieren:

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

Problembehandlung

Die folgenden Elemente werden nicht für C- und C++-Code unterstützt:

  • Basistypen werden nicht in Diagrammen, die die Elemente Hierarchie enthalten.

  • Die meisten Anzeigen Menüelemente sind nicht für C- und C++-Code verfügbar.

Die folgenden Probleme können auftreten, wenn Abhängigkeitsdiagramme für C und C++-Code erstellt werden:

Problem

Mögliche Ursache

Lösung

Das Abhängigkeitsdiagramm konnte nicht generieren.

Keine Projekte in der Projektmappe wurden erfolgreich erstellt.

Korrigieren Sie die Buildfehler, die aufgetreten sind und generieren Sie dann das Diagramm erneut.

Visual Studio reagiert nicht mehr, wenn Sie versuchen, im Menü Architektur ein Abhängigkeitsdiagramm zu generieren.

Die Programmdatenbankdatei (.pdb) ist möglicherweise beschädigt.

In einer PDB-Datei werden Debuginformationen gespeichert, z. B. Typ, Methode und Quelldateiinformationen.

Siehe [OBSOLETE] Programmdatenbankdateien (C++).

Erstellen Sie die Projektmappe neu, und versuchen Sie es dann erneut.

Bestimmte Einstellungen für die IntelliSense-Suchdatenbank sind deaktiviert.

Bestimmte IntelliSense-Einstellungen sind im Dialogfeld Optionen von Visual Studio möglicherweise deaktiviert.

Aktivieren Sie die Einstellungen, um sie verfügbar zu machen.

Siehe Optionen, Text-Editor, C/C++, Erweitert.

Die Meldung Unbekannte Methode wird in einem Methodenknoten angezeigt.

Dieses Problem tritt auf, da der Name der Methode nicht aufgelöst werden kann.

Die Binärdatei weist möglicherweise keine Basisverschiebungstabelle auf.

Aktivieren Sie die Option /FIXED:NO im Linker.

Siehe /FIXED (Feste Basisadresse).

Die Programmdatenbankdatei (.pdb) wird möglicherweise nicht erstellt.

In einer PDB-Datei werden Debuginformationen gespeichert, z. B. Typ, Methode und Quelldateiinformationen.

Weitere Informationen finden Sie unter [OBSOLETE] Programmdatenbankdateien (C++).

Aktivieren Sie die Option /DEBUG im Linker.

Siehe /DEBUG (Debuginfo generieren).

Die PDB-Datei kann an den erwarteten Speicherorten nicht geöffnet oder gefunden werden.

Stellen Sie sicher, dass die PDB-Datei an den erwarteten Speicherorten vorhanden ist.

Debuginformationen wurden aus der PDB-Datei entfernt.

Wenn die Option /PDBSTRIPED im Linker verwendet wurde, schließen Sie stattdessen die vollständige PDB-Datei ein.

Siehe /PDBSTRIPPED (Private Symbole entfernen).

Der Aufrufer ist keine Funktion und ist entweder ein Thunk in der Binärdatei oder ein Zeiger im Datenabschnitt.

Wenn der Aufrufer ein Thunk ist, versuchen Sie, den Thunk mithilfe von _declspec(dllimport) zu vermeiden.

Thema

Was sonst kann ich tun?

Wo finde ich mehr Informationen abrufen?

Kategorie

Links

Foren

Blogs