Visualizzare le dipendenze di codice nei grafici dipendenze
Per visualizzare e comprendere l'organizzazione del codice e le relative dipendenze, è possibile creare grafici dipendenze in Visual Studio finale.Cosa sono grafici dipendenze e quali sono anche utili?
Progetti supportati:
Progetti visual C# .NET e Visual Basic. .NET, incluse le applicazioni di archivio di Windows e file di assembly (file dll o exe).
Progetti Visual C++, incluse le applicazioni di archivio di Windows, con il codice c o C++ (gestito o nativo), file di intestazione (h o #include) e i file binari.
Visualizzare:
In questo argomento
Procedure relative inizia?
Dipendenze di visualizzazione nel codice
Condividere i grafici dipendenze
Generare grafici per l'elaborazione batch
Risoluzione dei problemi
Procedure relative inizia?
Ottenere una panoramica della soluzione: Scegliere dal menu Architettura, scegliere Genera grafico dipendenze, Per Soluzione.
Viene visualizzato un grafico che mostra gli assembly di livello principale.È ora possibile esplorare questi assembly espandendoli.Spostare il puntatore del mouse su un assembly e quindi scegliere il pulsante con la freccia di espansione (^) viene visualizzato.Eseguire la stessa operazione per gli spazi dei nomi, tipi e membri continuino a esplorare il codice.
Per visualizzare le dipendenze tra gruppi, selezionare un elemento nel grafico.
Per ulteriori informazioni, vedere Ottenere una panoramica della soluzione.È inoltre possibile eseguire analizzatori per trovare problemi potenziali nel codice.Vedere Trovare problemi potenziali nel codice sui grafici dipendenze.
Visualizzare dipendenze specifiche nella soluzione: In Esplora soluzioni, selezionare elementi che interessano.È possibile selezionare i progetti, i riferimenti agli assembly, le cartelle, i file, i tipi e i membri.Per individuare un elemento specifico, utilizzare la casella di ricerca Esplora soluzioni.
Nella barra degli strumenti Esplora soluzioni, scegliere Crea un nuovo documento grafico.
- oppure -
Trascinare gli elementi da Esplora soluzioni a un grafico esistente.
Suggerimento Per creare un grafico vuoto, scegliere dal menu File, scegliere Nuova, File, Documento grafico diretto.Per includere la gerarchia padre per gli elementi, premuto il tasto CTRL quando si trascinano elementi.
Viene visualizzato un grafico che mostra gli elementi selezionati.È ora possibile esplorare questi elementi espandendoli.Spostare il puntatore del mouse su un elemento e quindi scegliere il pulsante con la freccia di espansione (^) viene visualizzato.
Per ulteriori informazioni, vedere Visualizzare dipendenze specifiche nella soluzione.È inoltre possibile eseguire analizzatori per trovare problemi potenziali nel codice.Vedere Trovare problemi potenziali nel codice sui grafici dipendenze.
Cosa sono grafici dipendenze e quali sono anche utili?
I grafici dipendenze forniscono una modalità visiva per esaminare il codice e le relative dipendenze senza dover cercare tra file e righe di codice.È possibile visualizzare elementi e relazioni come nodi e collegamenti, o le frecce.Ad esempio, si supponga che sia una revisione del codice da eseguire.Si dispone di un set di file che contengono le modifiche in sospeso.È possibile visualizzare il codice e dipendenze per tali modifiche creando un grafico di dipendenze da quelli file.Vedere Visualizzare dipendenze specifiche nella soluzione.
Per impostazione predefinita, le relazioni del contenitore sono rappresentate come gruppi, che è possibile espandere e comprimere.
Suggerimento |
---|
Il pulsante Recupera di nuovo figli consente di recuperare i membri del gruppo presenti nel codice ma non viene visualizzato nel grafico.Inoltre è stato applicato uno stile diverso ai collegamenti di chiamate in modo che sia possibile visualizzarlo facilmente.Vedere Modificare e personalizzare grafici dipendenze. |
È inoltre possibile visualizzare relazioni del contenitore come collegamenti.Aprire il menu di scelta rapida del grafico, scegliere Gruppo, Disabilita raggruppamento:
È inoltre possibile eseguire analizzatori per trovare problemi potenziali nel codice.Vedere Trovare problemi potenziali nel codice sui grafici dipendenze.
Quando si genera la prima volta un grafico dipendenze, Visual Studio indicizza tutte le dipendenze individuate.Questo processo può richiedere tempo, in particolare per le soluzioni di grandi dimensioni o grafici con molti collegamenti.Tuttavia, l'indice migliorare le prestazioni delle operazioni successive.Se le modifiche al codice, Visual Studio reindexes solo il codice aggiornato.
Se non si desidera attendere il grafico per completare generare, è possibile annullare questo passaggio in qualsiasi momento e provare ai suggerimenti seguenti:
Grafico solo le dipendenze che interessano.
Prima di generare il grafico per un'intera soluzione, ridurre l'ambito della soluzione.
Sebbene Visual Studio possa funzionare con 1 GB di memoria, si consiglia del computer dispone almeno 2 GB di memoria per evitare ritardi lunghi quando Visual Studio crea l'indice di codice e viene generato il grafico.
[!NOTA]
Visual Studio genera un grafico se almeno progetto venga compilato correttamente una.Mostra solo le dipendenze per il codice compilato correttamente.Se si verificano errori di compilazione per gli altri componenti, gli errori per tali componenti vengono visualizzati nel grafico.Assicurarsi che un componente venga effettivamente e dipendenze prima di creare le decisioni architetturali basate sul grafico.
Potrebbe richiedere più tempo per creare grafici o aggiungere elementi a un grafico in Esplora soluzioni alla proprietà Copia in directory di output di un elemento di progetto è impostata su Copia sempre.Ciò potrebbe causare problemi con le compilazioni incrementali e Visual Studio per ricompilare ogni volta che il progetto.Per migliorare le prestazioni, impostare questa proprietà su Copia se più recente o a PreserveNewest.Vedere Compilazioni incrementali.
Dipendenze di visualizzazione nel codice
Ottenere una panoramica del codice
Visualizzare dipendenze specifiche nel codice
Visualizzazione delle dipendenze tra C o file di origine e file di intestazione C++
Generare grafici per l'elaborazione batch tramite GraphCmd.exe
Suggerimento |
---|
Per generare più grafici completi per i progetti C++, l'opzione del compilatore di informazioni di visualizzazione (/FR) deve essere impostata su di essi.In caso contrario, viene visualizzato un messaggio e verrà richiesto di impostare l'opzione.Se il messaggio, è possibile impostare l'opzione per solo il grafico corrente scegliendo OK, oppure impostare l'opzione e nascondere il messaggio per tutti i grafici successivi.Per eseguire il messaggio visualizzato per i grafici successivi, impostare la seguente chiave del Registro di sistema a 0 o eliminare la chiave: HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\NativeProvider : AutoEnableSbr Vedere /FR, /Fr (Crea file sbr). |
Ottenere una panoramica del codice
È possibile creare un grafico dipendenze per la soluzione intera o per gli assembly o binari.
Ottenere una panoramica della soluzione
Scegliere dal menu Architettura, scegliere Genera grafico dipendenze, Per Soluzione.
Viene visualizzato un grafico che mostra gli assembly di primo livello e i relativi collegamenti aggregati.Lo spessore di un collegamento di aggregazione indica quante dipendenze singole il collegamento rappresenta.Il gruppo Esterni contiene alcun elemento esterno alla soluzione, incluse le dipendenze della piattaforma.Gli assembly esterni mostrano solo gli elementi utilizzati.
È ora possibile esplorare questi assembly espandendoli.Spostare il puntatore del mouse su un assembly e quindi scegliere il pulsante con la freccia di espansione (^) viene visualizzato.(Tastiera: Selezionare l'elemento, quindi scegliere la chiave più (+).) Eseguire la stessa operazione per gli spazi dei nomi, classi e membri continuino a esplorare il codice.
Per ottenere ulteriori informazioni su un elemento o un collegamento, spostare il puntatore sull'elemento finché una descrizione comando non viene visualizzato.
Per esaminare gli elementi e le dipendenze rappresentate da un collegamento di aggregazione, selezionare il collegamento innanzitutto quindi aprire il menu di scelta rapida.Scegliere Mostra, Collegamenti partecipanti nel diagramma corrente o Collegamenti partecipanti in un nuovo diagramma.
Visual Studio espandere i gruppi a entrambe le estremità del collegamento e contiene solo gli elementi e dipendenze che partecipano al collegamento.Per visualizzare gli elementi presenti nel codice ma non da un gruppo, scegliere Recupera di nuovo figli.
Vedere:
Ottenere una panoramica degli assembly o dei file binari
Creare un grafico vuoto, o apre un grafico esistente (file con estensione dgml).Dall'esterno di Visual Studio, trascinare gli assembly o binari al grafico.
[!NOTA]
È possibile trascinare assembly o binari da Esplora risorse solo se si esegue Esplora risorse e Visual Studio allo stesso livello di autorizzazione di (UAC) di controllo di accesso utente.Ad esempio, se UAC è attivato e si eseguono Visual Studio come amministratore, quindi Esplora risorse bloccherà l'operazione di trascinamento verrà.Per ovviare a questo problema, assicurarsi che Visual Studio sia in esecuzione come amministratore, o UAC di disattivare esterno.Si noti che in Windows 8, Esplora risorse è Esplora file.
In alternativa
Scegliere dal menu Architettura, scegliere Finestre, Esplora architettura.
Nella prima colonna, in File system, scegliere Seleziona file.
Nella casella Apri, individuare e selezionare gli assembly o binari.Scegliere Apri aggiungerli alla colonna successiva in Esplora architettura.
In Esplora architettura, selezionare gli assembly o binari.
A destra della colonna che contiene gli assembly o i file selezionati, quindi selezionare la colonna dell'azione compressa per espanderla.
Suggerimento La colonna dell'azione viene visualizzata evidenziata quando si sposta il puntatore su.
Nella colonna azione, in Comandi, scegliere Apri per generare un grafico dipendenze.
Per creare un grafico vuoto
Per aprire un nuovo grafico vuoto senza aggiungerlo alla soluzione, scegliere dal menu File, scegliere Nuova, File.
In alternativa
Per aggiungere un grafico vuoto alla cartella Elementi di soluzione nella soluzione, aprire il menu di scelta rapida del nodo della soluzione di primo livello.Scegliere Aggiungi, Nuovo elemento.
In Installato, scegliere Generale.
Nel riquadro di destra, scegliere Documento grafico diretto.
È inoltre possibile aggiungere un grafico vuoto a un progetto di modello dal menu di scelta ArchitetturaNuovo diagramma.
Visualizzare dipendenze specifiche nel codice
È possibile creare un grafico dipendenze per elementi specifici nella soluzione o in in assembly e binari.
Visualizzare dipendenze specifiche nella soluzione
In Esplora soluzioni, selezionare elementi che interessano.È possibile selezionare i progetti, i riferimenti agli assembly, le cartelle, i file, i tipi e i membri.Per individuare un elemento specifico, utilizzare la casella di ricerca Esplora soluzioni.
Suggerimento Per trovare gli elementi con dipendenze dai tipi o i membri, aprire il menu di scelta rapida per il tipo o il membro in Esplora soluzioni.Scegliere il tipo di dipendenza.Esplora soluzioni vengono illustrati gli elementi che dispongono della dipendenza specificata.Selezionare i risultati.
Per rappresentare graficamente gli elementi e i relativi membri, sulla barra degli strumenti Esplora soluzioni, scegliere Crea un nuovo documento grafico.
In alternativa
Per includere la gerarchia padre nel grafico, aprire l'elenco Crea un nuovo documento grafico… nella barra degli strumenti Esplora soluzioni, quindi scegliere Nuovo grafico dipendenze con predecessori.
Suggerimento È inoltre possibile trascinare gli elementi nel grafico.Innanzitutto, creare un grafico vuoto o apre un grafico esistente (file con estensione dgml).Per includere la gerarchia del contenitore padre, tenere premuto il tasto CTRL quando si trascinano elementi.
Viene visualizzato un grafico che mostra gli elementi selezionati.
Per esplorare elementi, è possibile ampliarli.Spostare il puntatore del mouse su un elemento, quindi scegliere il pulsante con la freccia di espansione (^) viene visualizzato.Per espandere tutti gli elementi, aprire il menu di scelta rapida del grafico.Scegliere Gruppo, Espandi tutto.
[!NOTA]
Questo comando non è disponibile se espandere tutti i gruppi genera problemi di memoria o di un grafico inutilizzabile.
Per recuperare gli elementi senza da un gruppo, scegliere Recupera di nuovo figli nel gruppo.
Per visualizzare più elementi correlati a tali sul grafico, scegliere dal menu di scelta rapida per l'elemento.Scegliere Mostra e la relazione degli elementi che interessano.
Per un assembly, scegliere:
Assembly a cui viene fatto riferimento
Aggiungere gli assembly a cui fa riferimento questo assembly.Gli assembly esterni vengono visualizzati nel gruppo Esterni.
Assembly di riferimento
Aggiungere gli assembly della soluzione che fanno riferimento a questo assembly.
Per una classe, scegliere:
Tipi di base
Per una classe, aggiungere la classe base e le interfacce implementate.
Per un'interfaccia, aggiungere le interfacce di base.
Tipi derivati
Per una classe, aggiungere le classi derivate.
Per un'interfaccia, aggiungere le interfacce derivate dalle classi e gli struct o distribuire.
Tutti i tipi di base
Aggiungere la gerarchia di interfaccia o di classe base in modo ricorsivo.
Tutti i tipi derivati
Per una classe, aggiungere tutte le classi derivate in modo ricorsivo.
Per un'interfaccia, aggiungere tutte le interfacce derivate e implementare classi o struct in modo ricorsivo.
Gerarchia di contenimento
Aggiungere la gerarchia del contenitore padre.
Tipi utilizzati
Aggiungere tutte le classi e membri che questa classe utilizza.
Primo dai tipi
Aggiungere tutte le classi e membri che utilizzano questa classe.
Per un metodo, scegliere:
Gerarchia di contenimento
Aggiungere la gerarchia del contenitore padre.
Methods chiamato
Aggiungere metodi che tali chiamate al metodo.
Chiamare- dai metodi
Aggiungere metodi che chiamano questo metodo.
Metodi sottoposti ai tipi di base
Per un metodo che esegue l'override di altri metodi o implementa il metodo di un'interfaccia, aggiungere tutti gli astratto o metodi virtuali nelle classi di base che venga eseguito l'override e, se disponibile, il metodo di interfaccia implementato.
Campi a cui si fa riferimento
Aggiungere campi che questo metodo fa riferimento.
Per un campo, scegliere:
Gerarchia di contenimento
Aggiungere la gerarchia del contenitore padre.
Metodi di riferimento
Aggiungere metodi che fanno riferimento al campo.
Vedere:
Visualizzare dipendenze specifiche in assembly o file binari
Scegliere dal menu Architettura, scegliere Finestre, Esplora architettura.
Nella prima colonna, in File system, scegliere Seleziona file.
Nella casella Apri, individuare e selezionare gli assembly o binari.Scegliere Apri aggiungerli alla colonna successiva in Esplora architettura.
Nella colonna successiva, selezionare gli assembly o binari.
Per impostazione predefinita, la colonna successiva mostra elementi contenuti dagli elementi selezionati.
Suggerimento Per selezionare altri elementi correlati, espandere la colonna compressa a destra della colonna con le selezioni.In Navigazione nodi, selezionare i tipi di elementi che interessano.In Navigazione esterna o Navigazione interna, selezionare i tipi di relazioni che interessano.Vedere Trovare codice con Esplora architettura.
Individuare e selezionare tutti gli elementi che si desidera inserire nel grafico.
Per creare un nuovo grafico, sulla barra degli strumenti Esplora architettura, scegliere Crea un nuovo documento grafico da tutti i nodi selezionati.
Visual Studio crea il grafico e aperto.
In alternativa
Per aggiungere la selezione a un grafico, seguire questi passaggi:
Aprire il file con estensione dgml del grafico, o creare un grafico vuoto.
Nella barra degli strumenti Esplora architettura, scegliere Aggiunge tutti i nodi selezionati al documento grafico attualmente visibile.
In alternativa
Trascinare gli elementi da Esplora architettura al grafico.
Visualizzazione delle dipendenze tra C e i file di origine e file di intestazione C++
Per visualizzare le dipendenze tra |
Eseguire questa operazione |
---|---|
Tutti i file di origine e i file di intestazione della soluzione |
Scegliere dal menu Architettura, scegliere Genera grafico dipendenze, Per file di inclusione. |
Il file aperto e i file di origine correlati e i file di intestazione |
|
[!NOTA]
Quando si apre una soluzione che contiene progetti Visual C++, potrebbe richiedere tempo aggiornare il database IntelliSense.Durante questo periodo, non è possibile creare grafici dipendenze per i file di intestazione (h) o #includefinché il database IntelliSense non ha completato l'aggiornamento.È possibile monitorare lo stato di avanzamento di aggiornamento nella barra di stato di Visual Studio.Per risolvere problemi o i messaggi visualizzati poiché alcune impostazioni di IntelliSense sono disabilitati, vedere Risoluzione dei problemi.
Condividere i grafici dipendenze
Salvare e condividere il grafico con altri utenti di Visual Studio
Utilizzare il menu File per salvare il grafico.
In alternativa
Per salvare il grafico come parte del progetto, aprire il menu di scelta rapida per la superficie del grafico.Scegliere Sposta <DependencyGraphName.dgml> in e il progetto in cui si desidera salvare il grafico.
Visual Studio salva il grafico come file con estensione dgml di condividere con altri utenti di Visual Studio ultimate, premium di Visual Studio e Visual Studio professional.
[!NOTA]
Prima di condividere un grafico a coloro che utilizza premium di Visual Studio e il Visual Studio professional, verificare espandere tutti i gruppi, visualizzare i nodi nascosti e collegamenti tra gruppi e recuperare tutti i nodi eliminati da altri per visualizzare nel grafico.In caso contrario, altri utenti non saranno in grado di visualizzare questi elementi.
Si potrebbe verificare il seguente errore quando si salva un grafico che è contenuto in un progetto di modello o è stato copiato da un progetto di modello a un altro percorso:
"Impossibile salvare nomeFile all'esterno della directory del progetto.Gli elementi collegati non sono supportati."
Visual Studio riportato di errore, ma crea comunque la versione salvata.Per evitare l'errore, creare il grafico all'esterno del progetto di modello.Sarà quindi possibile salvarlo quindi nel percorso desiderato.Il semplice tentativo di copiare il file in un altro percorso della soluzione e salvarlo non produrrà alcun effetto.
Esportando il grafico come immagine in modo da copiarlo in altre applicazioni, ad esempio Microsoft Word o PowerPoint
Aprire il menu di scelta rapida per la superficie del grafico.Scegliere Modifica, Copia immagine.
Incollare l'immagine in un'altra applicazione.
Esportando il grafico come file pertanto è XPS è visibile in visualizzazione XAML o XML come Internet Explorer
Aprire il menu di scelta rapida dalla superficie del grafico.Scegliere Salva come XPS.
Nella finestra di dialogo Salva con nome, spostarsi sul percorso in cui si desidera salvare il file.
Denominare il grafico.Assicurarsi che la casella Salva come sia impostata su File XPS (*.xps).Scegliere Salva.
Generare grafici per l'elaborazione batch
È possibile generare documenti grafici (file con estensione dgml) in modalità batch tramite lo strumento da riga di comando GraphCmd.exe.Ad esempio, eseguire lo strumento dopo ogni compilazione per trovare le dipendenze che hanno modificato tra le compilazioni.Questo strumento è disponibile nella cartella C:\Programmi\Microsoft Visual Studio 11.0\Common7\IDE.
[!NOTA]
GraphCmd.exe supporta solo il codice.NET e genera informazioni di dipendenza solo per gli assembly o file con estensione dgml, non per codice sorgente nella soluzione di Visual Studio o file di progetto.GraphCmd.exe esegue esterno di Visual Studio, pertanto il supporto per le azioni nelle query DGQL è limitato.
Utilizzare la sintassi seguente per GraphCmd.exe:
GraphCmd -? -all -exceptions -input File_Name -query File_Name -exec "DGQL_Statement" -output File_Name -path alias=path
Suggerimento |
---|
È possibile specificare le opzioni seguenti più volte: -input, -query, -exec e -path. |
Nella tabella seguente vengono descritte le opzioni di GraphCmd.exe:
-? |
Consente di visualizzare la guida per GraphCmd.exe. |
-all |
Consente di includere tutti i risultati di query intermedi, non solo per l'ultimo set di nodi. |
-exceptions |
Consente di segnalare le eccezioni di query come file di documento grafico, con estensione dgml. |
-input Nome file |
Consente di elaborare il file con estensione dgml specificato. Ciò è utile per la post-elaborazione un grande il file con estensione dgml e un'opzione in modo da semplificarne la visualizzazione in Visual Studio. |
-query Nome file |
Consente di eseguire il file con estensione dgql (DGQL, Directed Graph Query Language). Vedere:
|
-exec "Istruzione_DGQL" |
Consente di eseguire l'istruzione DGQL specificata. Vedere Linguaggio di query (DGQL) del grafico diretto conoscenza. |
-output Nome_file |
Consente di restituire come output il file con estensione dgml specificato. |
-path alias=percorso |
Consente di specificare un nuovo alias da utilizzare nell'input e nell'output dei documenti DGML. Ad esempio:
Vedere Alias per percorsi di utilizzo comune. |
Alias per percorsi di utilizzo comune
Gli alias per i percorsi di utilizzo comune consentono di ridurre le dimensioni del file con estensione dgml e il tempo necessario per caricare o salvare il file.Per creare un alias, aggiungere una sezione <Paths></Paths> alla fine del file con estensione dgml.In questa sezione aggiungere un elemento <Path/> per definire un alias per il percorso:
<Paths>
<Path Id="MyPathAlias" Value="C:\...\..." />
</Paths>
Per fare riferimento all'alias da un elemento nel file con estensione dgml, racchiudere il valore Id dell'elemento <Path/> con un segno di dollaro ($) e parentesi (()):
<Nodes>
<Node Id="MyNode" Reference="$(MyPathAlias)MyDocument.txt" />
</Nodes>
<Properties>
<Property Id="Reference" Label="My Document" DataType="System.String" IsReference="True" />
</Properties>
Per modificare file con estensione dgml, vedere Modificare e personalizzare grafici dipendenze.
Informazioni su DGQL (Directed Graph Query Language)
DGQL è un linguaggio di query leggero che è possibile utilizzare per compilare DGML.Un'istruzione DGQL segue un modello alternato di selezione del nodo e azioni, in modo tale che ogni selezione del nodo crea un input per l'azione successiva, il cui output diventa l'input per la selezione del nodo successiva e così via.
Il formato di un'istruzione DGQL è il seguente:
<node selection> / <action> / <node selection> / <action> / ...
Nella tabella seguente viene descritta la sintassi DGQL utilizzata per la selezione dei nodi:
* |
Consente di selezionare tutti i nodi. |
+ "text" |
Consente di selezionare tutti i nodi che contengono "text". |
+ Id.Equals("text") |
Consente di selezionare tutti i nodi il cui Id è uguale a "text". |
+ Background.Contains("text") |
Consente di selezionare tutti i nodi il cui attributo Background ha un valore che contiene la stringa "text". |
+ "text1" + "text2" + ... |
Consente di selezionare tutti i nodi che corrispondono a "text1" o "text2". |
+ MyProperty="True" |
Consente di selezionare tutti i nodi che dispongono di una proprietà denominata MyProperty il cui valore è "True". |
- Label.Contains("text") |
Consente di selezionare tutti i nodi ad eccezione di quelli che hanno un attributo Label che contiene (Contains) la stringa "text". |
+ Category.Is("MyCategory") |
Consente di selezionare tutti i nodi che dispongono di una categoria denominata MyCategory o che eredita da MyCategory. |
Nella tabella seguente vengono descritti esempi di azioni dirette che è possibile eseguire nei nodi selezionati:
Azione di esempio |
Descrizione |
---|---|
Microsoft.Contains |
Consente di restituire tutti i nodi inclusi nei nodi di input.È possibile sostituire Contains con una categoria di collegamento diversa. |
Microsoft.Open |
Consente di aprire il codice sorgente per i nodi di input.
Nota
Funziona solo in Visual Studio.
|
Microsoft.AllOutBoundLinks |
Consente di restituire tutti i nodi che rappresentano la destinazione di un collegamento in uscita dai nodi di input. |
Microsoft.AllInboundLinks |
Consente di restituire tutti i nodi che rappresentano l'origine di un collegamento ai nodi di input. |
Microsoft.Core.CreateGroupsByProperties |
Consente di richiamare l'azione GroupByProperties. |
Microsoft.AllNodes |
Consente di restituire tutti i nodi nell'intero grafico fino al punto corrente. |
Le azioni basate sui dati consentono di selezionare gli elementi solo in base ai dati nei nodi di input e nei collegamenti.Quando si associano le categorie utilizzando azioni basate sui dati, vengono incluse le categorie ereditate.Nella tabella seguente vengono descritti esempi di azioni basate sui dati:
Type |
Descrizione |
---|---|
Node:Both:Category |
Consente di restituire tutti i nodi che dispongono della categoria Category e che sono connessi con i nodi di input da un collegamento che punta in una delle direzioni. |
Link:Both:Category |
Consente di restituire tutti i nodi connessi con i nodi di input da un collegamento che punta in una delle direzioni e che dispone della categoria Category. |
Link:Backward:Category |
Consente di restituire tutti i nodi che puntano ai nodi di input con un collegamento che dispone della categoria Category. |
Link:Forward:Category |
Consente di restituire tutti i nodi che puntano dai nodi di input con un collegamento che dispone della categoria Category. |
Suggerimenti
In genere, è prevista un'azione "predefinita" per un set specifico di nodi di input, selezionata automaticamente da Esplora architettura.Per ottenere lo stesso comportamento, utilizzare un'azione vuota: //
Lo spazio vuoto non è significativo in DGQL, pertanto è possibile formattare la query in modo che occupi un'unica riga, se necessario.Questa operazione è utile quando si utilizza l'opzione –exec con GraphCmd.
Quando si esegue il debug di DGQL, utilizzare l'azione "Execute Expanded" in Esplora architettura per visualizzare ogni passaggio della query e individuare quello che non produce i risultati previsti.
Esempio
L'istruzione DGQL seguente consente di eseguire una query come descritto nei passaggi seguenti:
+ Id.Equals("Microsoft.Solution.ClassView") / "Microsoft.Solution.ClassView" / * / "Node:Both:CodeSchema_Class" / + CodeSchemaProperty_IsPublic.Equals("True")
Scegliere il nodo Visualizzazione classi nella prima colonna Esplora architettura.
Eseguire l'azione "Microsoft.Solution.ClassView", restituendo tutti gli spazi dei nomi nella soluzione.
Utilizzare * per selezionare tutti gli spazi dei nomi.
Selezionare tutti i nodi che dispongono di una categoria denominata CodeSchema_Class e sono correlati a tali spazi dei nomi da un collegamento in una delle due direzioni.Si tratta in genere di collegamenti di contenimento.
Filtrare le classi risultanti per individuare solo quelle che dispongono della proprietà CodeSchemaProperty_IsPublic="True".
Tecnicamente, l'azione "Microsoft.Solution.ClassView" non è necessaria in quanto si tratta dell'azione "predefinita" per il nodo Visualizzazione classi.È pertanto possibile sostituire tale azione con // per semplificare la query e formattarla su una singola riga come illustrato di seguito:
+Id.Equals("Microsoft.Solution.ClassView")//*/"Node:Both:CodeSchema_Class"/+CodeSchemaProperty_IsPublic.Equals("True")
Risoluzione dei problemi
Gli elementi riportati di seguito non sono supportati per il codice C e C++:
I tipi di base non sono visualizzati nei grafici che includono la gerarchia padre.
La maggior parte delle voci di menu Mostra non sono disponibili per il codice C e C++.
I problemi seguenti potrebbero verificarsi quando si creano grafici dipendenze per il codice c e C++:
Problema |
Possibile causa |
Risoluzione |
---|---|---|
Il grafico dipendenze non è in grado di generare. |
Nessun progetto nella soluzione è stato compilato correttamente. |
Correggere gli errori di compilazione che si sono verificati e quindi rigenerare il grafico. |
Quando si tenta di generare un grafico di dipendenze dal menu Architettura, Visual Studio smette di rispondere. |
Il file di database del programma (con estensione pdb) potrebbe essere danneggiato. Nel file pdb sono memorizzate informazioni di debug, ad esempio informazioni sui tipi, sui metodi e sui file di origine. |
Ricompilare la soluzione e riprovare. |
Alcune impostazioni per il database di esplorazione IntelliSense sono disabilitate. |
Alcune impostazioni di IntelliSense potrebbero essere disabilitate nella finestra di dialogo Opzioni di Visual Studio. |
Attivare le impostazioni per abilitarle. |
Il messaggio Metodi sconosciuti viene visualizzato su un nodo di metodo. Questo problema si verifica perché non è possibile risolvere il nome del metodo. |
Il file binario potrebbe non disporre di una tabella di rilocazione di base. |
Attivare l'opzione /FIXED:NO nel linker. Vedere /FIXED (Indirizzo di base fisso). |
Il file di database del programma (con estensione pdb) potrebbe non essere compilato. Nel file pdb sono memorizzate informazioni di debug, ad esempio informazioni sui tipi, sui metodi e sui file di origine. Per ulteriori informazioni, vedere [OBSOLETO] File di database di programma (C++). |
Attivare l'opzione /DEBUG nel linker. |
|
Non è possibile aprire o trovare il file pdb nei percorsi previsti. |
Verificare che il file pdb esista nei percorsi previsti. |
|
Le informazioni di debug sono state rimosse dal file pdb. |
Se nel linker è stata utilizzata l'opzione /PDBSTRIPED, includere il file pdb completo. |
|
Il chiamante non è una funzione e non è un thunk nel file binario o un puntatore nella sezione di dati. |
Quando il chiamante è un thunk, provare a utilizzare _declspec(dllimport) per evitare il thunk. Vedere: |
Che altro è possibile fare?
Dove è possibile ottenere ulteriori informazioni?
Category |
Collegamenti |
---|---|
Forum |
|
Blog |