2012-03-14 25 views
33

Sé que I can set up Visual Studio to debug through the .NET framework source code.Buscando el código fuente de .NET Framework desde Visual Studio

¿Pero hay una forma de que pueda navegar por el código sin depurar, es decir, poder presionar F12 o "Ir a definición"?

Pensé que si esa característica no está incorporada en Visual Studio, entonces puede haber un complemento que pueda agregarla?

+0

Esta característica solo funciona cuando tiene los proyectos cargados en una solución para que IntelliSense pueda analizarlos. Claramente, no desea una solución que cree todos los ensamblados de .NET Framework. –

Respuesta

8

Acabo de descubrir esta extensión que prácticamente soluciona mi problema.Lo único es que abre la fuente en el navegador en lugar de en Visual Studio, pero no es gran cosa porque incluso en el navegador puede hacer clic en el código fuente para navegar a tipos, etc.

Fue presented on Scott Hanselman's blog un par de Hace días:

Miembro de la comunidad y fabuloso codificador Schabse Laks ha creado una extensión de Visual Studio para VS2010, 2012 y 2013! Esta extensión envía llamadas a Ir a definición (o al presionar F12 en un símbolo) directamente al código en línea (cuando es el código de .NET Framework, no el tuyo).

Usted puede download this companion "Ref12" Visual Studio Extension now! Just Goto Definition en cualquier tipo de .NET para el que tengamos una fuente y lanzará su navegador predeterminado para que pueda explorar el origen de .NET Framework usted mismo. Gracias Schabse!

+0

No funciona con Resharper –

+0

No funciona con webapi ni por el aspecto de las cosas – War

2

nunca he probado esto, pero supuestamente el código está disponible públicamente:

[Editar]

http://referencesource.microsoft.com/

+0

Claro, eso es lo que VS usa en el modo de depuración (cuando se configura como en el enlace de arriba). Pero, ¿cómo configuro VS para que pueda encontrar y mostrar el código fuente cuando no estoy depurando? –

+0

El enlace es http://referencesource.microsoft.com/ – juFo

0

Existe la .NET Mass Downloader, pero creo que la respuesta directa a su pregunta es, no.

Sin embargo, ahora veo que Microsoft ha hecho que el código sea más fácil de descargar.

Sin embargo tenga en cuenta que incluso para su propio código, cuando no la depuración, a menos que tenga el proyecto abierto, VS no ayudará a localizar el código fuente (aunque cuando lo encuentre a sí mismo romper puntos funcionará cuando se puede iniciar la depuración de nuevo, si los archivos .pdb corresponden).

6

He descargado el código fuente de .NET Framework desde aquí http://referencesource.microsoft.com/netframework.aspx.

Como estoy trabajando con .NET 4.0, elegí ".Net/4" de la lista. (¿Qué es" NET/8.0" en esa lista Ni idea?.)

escribí algunos scripts para reorganizar el caos sangriento que nos dan:

  • en una jerarquía de directorios razonable;
  • Para eliminar el código duplicado (¿por qué se duplicaron todos los archivos o mi instalación fue mala?);
  • Cambie el nombre de todos los espacios de nombres de nivel superior para que no entren en conflicto con los nativos integrados en Intellisense.
  • Ejemplo: System.Windows.Controls -> xSystem.Windows.Controls

A continuación, siga estos pasos:

  1. crear un nuevo proyecto de Visual Studio del tipo "biblioteca de clases"
  2. Quitar todas las referencias, sí, incluso las del sistema.
  3. Arrastre/suelte todo su código .NET masajeado en la raíz de su proyecto.
  4. Espere unos 30 minutos para el procesamiento VS. VS parecerá congelarse; se paciente.

Intellisense/ReSharper todavía se queja de un montón de problemas, pero ahora puedo hacer clic derecho y seleccionar "Ir a Declaración/Implementación".

Visual Studio tiene unos 600 MB con este proyecto cargado.

+1

¿Podría compartir sus scripts o su archivo .sln final? – Felix

+1

sí, sería genial compartir el resultado final, por lo que todos los demás no tienen que hacer el mismo procedimiento "aburrido" de cambio de nombre y así sucesivamente. –

3

Estoy usando Visual Studio 2013 Ultimate.

1. Seleccione el menú: Tools \ Extensiones y actualizaciones ...

enter image description here

2. Elija Visual Studio Gallery \ resultados de la búsqueda. Término de búsqueda: Ref12.

enter image description here

3. Descargar seguidamente coloque.

enter image description here

4. Reinicie Visual Studio.

5. Probar: Haga clic del ratón en la clase o método, pulse F12 y ver resultar en http://referencesource.microsoft.com/

+0

Gracias, pero este es un duplicado de la respuesta que publiqué 1 año antes. –

12

Con ReSharper es posible navegar por las fuentes .NET permitiendo ReSharper -> Opciones -> Herramientas -> Fuentes externas -> Navegación hacia las fuentes. Después de habilitar esta opción, aparece el nuevo ítem del menú "Navegar a -> Fuentes Descompiladas" haciendo clic derecho en tipo/método/lo que sea. La navegación también funciona con F12 para mí.

+0

Muestra solo la información de la interfaz, pero no el código fuente real (contenido de los métodos) en sí. ¿O estoy haciendo algo mal? –

+0

Lo siento. Mi error. Ahora funciona. Creo que tuve que reconstruir ;-) ¡Dulce! ¡Ahora puedo F12 en fuentes de .NET! –

Cuestiones relacionadas