Ho un progetto C # che contiene riferimenti agli assembly in formato DLL. Ho le informazioni sul PDB per questi file DLL, contenute nella stessa cartella. Quando premo F12 su un membro di riferimento, voglio andare alla definizione del membro. Invece, mi dà i metadati, che ovviamente non voglio.
Quando VS esegue il debug, va al codice sorgente se faccio un singolo passaggio in quel metodo. Ma se premo F12 su quel metodo, mi porta ancora ai metadati.
C’è una domanda simile qui, ma si applica solo ai riferimenti del progetto e la soluzione accettata non ha nulla a che fare con il mio problema.
“Vai alla definizione” in Visual Studio mostra solo i metadati
Riassumere:
MODIFICA: l’aggiunta come “Progetto” non è un’opzione in quanto crea una complessità aggiuntiva poiché il nostro file di soluzione fa riferimento a cinque altri progetti che sono tutti in repository separati di controllo del codice sorgente.
In Visual Studio, espandere la sezione Riferimenti, selezionare il riferimento al progetto correlato (quello che contiene il codice sorgente in cui si desidera inserire F12), fare clic con il pulsante destro del mouse su di esso e selezionare “Rimuovi”.
Quindi aggiungi nuovamente il riferimento al progetto facendo clic con il tasto destro su Riferimenti e selezionando Aggiungi riferimento, nella scheda Progetti (se stai usando VS 2012) seleziona (o naviga per) il progetto a cui vuoi aggiungere un riferimento e poi fai clic sul pulsante OK .
Questo ricostruirà il riferimento e sarai in grado di F12 nel codice sorgente dei progetti di riferimento. Avrai bisogno di farlo con tutti i progetti nelle tue soluzioni che stanno avendo questo problema.
Non so perché questo accada ma almeno la soluzione al problema è piuttosto semplice
Se hai installato ReSharper, dovresti visualizzare le opzioni di ReSharper e cercare External Sources
. Qui puoi specificare le opzioni pertinenti:
Sembra che questo problema sia stato risolto in Visual Studio 2013. Avere le informazioni sul PDB nella stessa cartella della DLL mi mostra il codice sorgente quando utilizzo Vai alla definizione. Non ho installato l’estensione Reflector.
La DLL di riferimento è un progetto nella tua soluzione? Trovo che quando ho il codice sorgente per il progetto, ed è nella mia soluzione, Visual Studio è in grado di collegarsi a questo codice molto più facilmente. (senza mostrarmi metadati).
Inoltre, assicurati di aggiungere il riferimento a “Progetto” nel popup Riferimenti.
Questo è generalmente ciò che faccio comunque quando ho questo problema
Spero che questo ti aiuti!
PS. I file PDB sono in genere solo per il debug (sia localmente che remoti) e non vengono utilizzati per la lettura del codice sorgente nel modo in cui si sta tentando di utilizzarlo. (“Vai alla definizione”)
Una soluzione a questo problema è l’uso di .NET Reflector, VS o VSPro edition. Questo programma modificherà Visual Studio per fornire la funzionalità richiesta.
Purtroppo, costa $ 135 a $ 195, che non è un’opzione per tutti.
Aggiungere il riferimento come progetto invece di .. \ bin \ Debug \ referenceFile.dll
Questo ha risolto il mio problema
Ho anche usato un riferimento come progetto e il mio problema è stato risolto e funziona benissimo. In realtà sono rimasto bloccato a questo punto da molto tempo e alla fine ho risolto questo problema.
Riferimenti -> Aggiungi riferimenti -> Soluzione -> Progetti -> Seleziona riferimento