6

Estoy desarrollando una biblioteca de clases. La biblioteca debe ser utilizada por otro programa, un .exe sin código fuente. La ubicación del archivo de la biblioteca se pasa como un parámetro a este exe, por ejemplo ejecutando: prog.exe lib.dllVisual Studio: ¿cómo depurar una biblioteca con un ejecutable externo?

Me gustaría depurar la biblioteca utilizando este .exe (usando herramientas de depuración como puntos de interrupción, etc.) ¿Cómo uso Visual C# para hacer esto?

Encontré una manera posible, que está creando un programa de una línea que ejecuta prog.exe lib.dll. Seguramente hay una mejor manera?

Respuesta

1

Si ya tiene un programa externo que utilice su biblioteca (que a su vez también es una aplicación .NET, asumiré), puede iniciar ese programa y asociar el depurador al proceso (depuración -> Adjuntar para procesar en el menú). Entonces podrá establecer puntos de interrupción en su código de biblioteca de clase y depurarlo. Asegúrese de que el exe utilice un archivo dll y pdb que esté sincronizado con su código (la última compilación).

+1

el expresos no tienen la función de depurar los procesos externos : http://msdn.microsoft.com/en-us/library/c6wf8e4z.aspx – Robert

2

En las opciones de depuración del proyecto, seleccione "Iniciar programa externo" e ingrese la ruta del exe. Al iniciar la depuración, VS iniciará el exe y se lo conectará como un depurador.

Cuando se carga su biblioteca, se activará cualquier punto de interrupción en su código.

Una advertencia: con un programa externo asegúrese de que está cargando el dll que está construyendo, las cosas pueden ser (en el mejor de) impar si está cargando una versión diferente que no coincide con el código fuente.

+0

"Iniciar programa externo" no aparece en la opción de depuración del proyecto. Solo tengo argumentos de línea de comando y directorio de trabajo. Intenté agregar la ruta del programa al argumento de la línea de comando, todavía no permite la depuración. –

+0

¿Es porque tengo la edición express? –

+0

@Louis: eso podría ser un problema (no tiene expreso, por lo que no puede verificarlo). – Richard

0
  1. Probablemente puedas probar windbg. con la extensión SOS, es casi posible todo lo que hagas con Visual Studio.
  2. Si lo que quieres es depurar la biblioteca, entonces por qué no puedes cargar la biblioteca en un EXE que creó y paso dentro de la biblioteca,
  3. versiones
Cuestiones relacionadas