none
Depurar un .dll desde una aplicación RRS feed

  • Pregunta

  • Que tal, comunidad.

    Estoy trabajando con un proyecto A que requiere del uso de un dll B, ambos escritos en C#. Cada vez que quiero acceder a una parte del código del dll que es llamado desde el proyecto A, no se ejecuta la depuración como debería. A lo que me refiero es:

    En mi dll tengo una función llamada "cuenta_bloques", la cual es llamada desde un método en la aplicación A, y al momento de hacer la depuración paso a paso para observar detenidamente el comportamiento de "cuenta_bloques", la depuración no inicia en la linea donde esta dicha función, y encima el depurador no me muestra el contenido actual de las variables que manejo en la función.

    ¿Como puedo depurar mi dll de manera correcta?

    Ambos, tanto el dll como la aplicación, están escritas en C# bajo Visual Studio 2010.

    Muchas gracias por sus respuestas.

    martes, 27 de febrero de 2018 18:46

Todas las respuestas

  • Tiene la pinta de que en tiempo de ejecución está cargando otra copia compilada de la DLL que no tiene la misma versión que la que corresponde al código fuente que estás siguiendo con el debugger.

    Asegúrate de que el ejecutable no está encontrando otra versión distinta (recuerda que la versión que carga en tiempo de ejecución no es la que pusiste en Referencias en Visual Studio al compilar, sino la primera que encuentra el proceso de Fusión). Y asegúrate de que la información simbólica (el fichero .pdb) que acompaña a la DLL que se carga en tiempo de ejecución es igualmente de la misma versión que la DLL.

    Si tienes acceso al código fuente y puedes recompilar la DLL, una buena forma de garantizar que se carga la versión correcta es ponerle un Strong Name. De esa forma, el ejecutable da un error si no es capaz de encontrar la misma versión contra la que se compiló.

    martes, 27 de febrero de 2018 19:01
    Moderador