2012-03-14 21 views
33

So che I can set up Visual Studio to debug through the .NET framework source code.Navigazione nel codice sorgente di .NET Framework da Visual Studio

Ma c'è un modo in cui posso sfogliare il codice mentre NON eseguo il debug - cioè, è possibile premere F12 o "Vai a definizione"?

Ho pensato che se questa funzionalità non è incorporata in Visual Studio, potrebbe esserci un plug-in che potrebbe aggiungerlo?

+0

Questa funzione può funzionare solo quando i progetti sono caricati in una soluzione in modo che IntelliSense possa analizzarli. Chiaramente non vuoi una soluzione che costruisca tutti gli assembly di framework .NET. –

risposta

8

Ho appena scoperto questa estensione che risolve praticamente il mio problema.L'unica cosa è che apre la sorgente nel browser piuttosto che in Visual Studio, ma non è un grosso problema perché anche nel browser è possibile fare clic sul codice sorgente per navigare a tipi ecc.

E 'stato presented on Scott Hanselman's blog un paio di giorni fa:

membro della community e favoloso codificatore Schabse Laks ha creato un'estensione di Visual Studio per VS2010, 2012 e 2013! Questa estensione invia le chiamate a Vai alla definizione (o premendo F12 su un simbolo) direttamente al codice online (quando si tratta del codice .NET Framework, non del tuo).

È possibile download this companion "Ref12" Visual Studio Extension now! È sufficiente la definizione di goto su qualsiasi tipo .NET per cui è stato creato il codice sorgente e verrà avviato il browser predefinito in modo da poter esplorare l'origine .NET Framework da solo! Grazie Schabse!

+0

Non funziona con Resharper –

+0

Non funziona con webapi dall'aspetto delle cose – War

2

non ho mai provato questo, ma presumibilmente il codice è a disposizione del pubblico:

[Edit]

http://referencesource.microsoft.com/

+0

Sicuro: questo è ciò che VS utilizza in modalità di debug (quando configurato come nel link precedente). Ma come faccio a configurare VS in modo che possa trovare e visualizzare il codice sorgente per me quando non eseguo il debug? Il collegamento –

+0

è http://referencesource.microsoft.com/ – juFo

0

C'è la .NET Mass Downloader, ma penso che la risposta diretta alla tua domanda è, no.

Tuttavia ora vedo che Microsoft ha reso il codice più facilmente scaricabile.

Tuttavia, anche per il proprio codice, quando non si esegue il debug, a meno che il progetto non sia aperto, VS non ti aiuta a individuare il codice sorgente (anche se quando lo trovi tu stesso i punti di interruzione funzioneranno quando avvii di nuovo il debug, se i file .pdb corrispondono).

6

Ho scaricato il codice sorgente di .NET Framework da qui http://referencesource.microsoft.com/netframework.aspx.

Poiché lavoro con .NET 4.0, ho scelto ".Net/4" dall'elenco. (Che cosa è" NET/8.0" in quella lista Nessuna idea?.)

ho scritto alcuni script per riorganizzare il pasticcio sanguinoso ci danno:

  • In un ragionevole gerarchia di directory;
  • Per rimuovere il codice duplicato (perché ogni file è raddoppiato o la mia installazione non è corretta?);
  • Rinominare tutti gli spazi dei nomi di livello superiore in modo che non siano in conflitto con quelli nativi inseriti in Intellisense.
  • Esempio: System.Windows.Controls -> xSystem.Windows.Controls

Quindi seguire questi passaggi:

  1. creare un nuovo progetto di Visual Studio di tipo "Libreria di classi"
  2. Rimuovere tutti i riferimenti - sì, anche quelli di sistema.
  3. Trascina/rilascia tutto il codice .NET massaggiato nella radice del progetto.
  4. Attendere circa 30 minuti per l'elaborazione VS. VS sembrerà congelarsi; essere pazientare.

Intellisense/ReSharper lamenta ancora un sacco di problemi, ma ora posso fare clic con il pulsante destro del mouse e selezionare "Vai a dichiarazione/implementazione".

Visual Studio è di circa 600 MB con questo progetto caricato.

+1

potresti condividere i tuoi script o il tuo file .sln finale? – Felix

+1

sì, sarebbe bello condividere il risultato finale, quindi tutti gli altri non devono fare la stessa 'noiosa' procedura di rinomina e così via. –

3

Sto utilizzando Visual Studio 2013 Ultimate.

1. Scegliere il menu: TOOLS \ Extensions e aggiornamenti ...

enter image description here

2. Scegli di Visual Studio \ Search Risultati. Termine di ricerca: Ref12.

enter image description here

3. Scarica quindi installare.

enter image description here

4. Riavviare Visual Studio.

5. Prova: clic del mouse su di classe o un metodo, premere F12 e vedere tradurrà in http://referencesource.microsoft.com/

+0

Grazie, ma questo è un duplicato della risposta che ho postato 1 anno prima. –

12

Con ReSharper è possibile passare in rassegna le fonti .NET permettendo ReSharper -> Opzioni -> Strumenti -> Origini esterne -> Navigazione verso fonti. Dopo aver abilitato questa opzione, appare una nuova voce di menu "Naviga verso -> Origini decompilate" facendo clic con il tasto destro del mouse su tipo/metodo/qualsiasi cosa. Anche la navigazione funziona con F12 per me.

+0

Mostra solo le informazioni dell'interfaccia ma non il vero codice sorgente (contenuto dei metodi) stesso. O sto facendo qualcosa di sbagliato? –

+0

Siamo spiacenti. Colpa mia. Ora funziona. Immagino di dover ricostruire ;-) Dolce! Ora posso F12 in sorgenti .NET! –

Problemi correlati