2010-04-12 50 views
6

Necesito depurar un proyecto de biblioteca de clase que se proporciona al proyecto principal (un sitio web ASP.NET) como una DLL. Por ejemplo, necesito poner algunos puntos de interrupción para verificar lo que está sucediendo durante la ejecución..NET - ¿Cómo depurar una DLL?

me trataron How to: Debug from a DLL Project, por desgracia, no funcionó ...

¿Cómo puedo hacerlo?

PD: ¡Tengo el código fuente!

+1

¿Y no tiene el código fuente de la DLL o es una biblioteca .NET? – Ivo

+0

@GordonB No puedo hacer eso. ¡Necesito ejecutarlo como un ensamblaje externo! –

Respuesta

3

Debugging DLLs in Visual Studio (véase # 2 en la lista) puede ser lo que usted está buscando (la revelación completa: Sí, este es mi sitio web personal).

  • Con el método n. ° 1, no se pueden ver las variables.

  • Con el método n. ° 2, paso n. ° 2, si no puede abrir el proyecto en la misma instancia de Visual Studio, puede ejecutar el binario del proyecto (es decir, ejecutarlo fuera de Visual Studio, pero asegúrese de ejecutar la versión de depuración) y adjunte el depurador de Visual Studio (menú Depurar ->Adjuntar al proceso).

Éstos son los pasos para el método # 2, de modo que nadie tiene que seguir el enlace:

Colocación de un proceso que utiliza para el proyecto DLL. Esto implicó conectar el depurador de Visual Studio a un proceso en ejecución.

  1. Abra el proyecto DLL en Visual Studio.
  2. Ejecute una aplicación que use la DLL. Esta aplicación no se puede ejecutar desde otra instancia de Visual Studio ya que el proceso ya tendrá un depurador conectado.
  3. Desde aquí puede agregar puntos de interrupción y recorrer el código DLL cargado en Visual Studio (aunque el punto de interrupción aparecerá deshabilitado de la misma manera que en el método 1).
+0

Esto es EXACTAMENTE lo que estaba buscando! Consejos increíbles ¡Gracias! –

+0

Pregunta por favor. Probé el # 1 y me mostró el seguimiento de la pila, pero ¿cómo puedo hacer si quiero ver mis variables? No entendí el # 2. ¿Cómo puedo ejecutar el proyecto que usa el DLL en la misma instancia de Visual Studio donde se carga el proyecto DLL? –

+0

@Amokrane, ver edición. –

8

Si tiene el código fuente y los archivos .pdb en su directorio BIN, puede depurar a través de ese código. Sin embargo, deberá habilitar la depuración de código externo en Visual Studio.

Necesitas desmarcar la opción "Habilitar Sólo mi código": Menú Herramientas -> Opciones -> Depuración ->Habilitar Sólo mi código

NOTA: Esto solo funcionará para los ensamblajes .NET.

+0

¿Pero cómo depurar a través del código? –

+0

Si tiene los archivos PDB y los archivos fuente, todo lo que necesita hacer es establecer un punto de interrupción en algún lugar de su código que llame al ensamblaje externo. Visual Studio recogerá automáticamente los símbolos y los cargará, lo que le permite ingresar al código. Si no tiene archivos fuente, existen programas que pueden reconstruir una representación del código del PDB. Si no tiene los archivos .pdb, entonces las cosas se ponen mucho más difíciles. – Josh

+0

@Amokrane: tendrá que entrar en el código. Coloque un depurador en su código en un lugar antes de llamar a algunos métodos desde la DLL. Ingrese al método presionando F11. – Marek

0

Cuando se crea un proyecto de biblioteca de clases, el archivo .pdb se crea en la carpeta Debug o Release de esa biblioteca de clases. Estos dos archivos se mencionan en el proyecto ASP.NET cuando hace clic con el botón derecho y selecciona la opción "Agregar una referencia" y señala el archivo DLL del proyecto de la biblioteca de clase.

Cuestiones relacionadas