para depurar desde un proyecto DLL en Visual Studio (C#, C++, Visual Basic, F#)

Una manera de depurar un proyecto DLL consiste en especificar la aplicación que realiza la llamada en las propiedades del proyecto DLL. Después, puede iniciar la depuración desde el propio proyecto DLL. Para que este método funcione, la aplicación debe llamar al mismo archivo DLL en la misma ubicación que en la que se configura. Si la aplicación encuentra y carga otra versión del archivo DLL, esa versión no contendrá los puntos de interrupción. Para obtener otros métodos de depuración de archivos DLL, vea Depuración de proyectos DLL.

Si la aplicación administrada llama a un archivo DLL nativo o si la aplicación nativa llama a un archivo DLL administrado, puede depurar el archivo DLL y la aplicación que realiza la llamada. Para obtener más información, vea Cómo: Depurar en modo mixto.

Los proyectos de archivos DLL nativos y administrados tienen otra configuración para especificar las aplicaciones que realizan la llamada.

Especificación de una aplicación de llamada en un proyecto DLL nativo

  1. Seleccione el proyecto DLL de C++ en el Explorador de soluciones. Seleccione el icono Propiedades, presione Alt+Entrar, o bien haga clic con el botón derecho y seleccione Propiedades.

  2. En el cuadro de diálogo <Proyecto > Páginas de propiedades, asegúrese de que el campo Configuración de la parte superior de la ventana esté establecido en Depurar.

  3. Seleccione Propiedades de configuración>Depuración.

  4. En la lista Depurador para iniciar, elija Depurador local de Windows o Depurador remoto de Windows.

  5. En el cuadro Comando o Comando remoto, agregue la ruta de acceso completa y el nombre de archivo de la aplicación que realiza la llamada, como un archivo .exe.

    Debug Properties window

  6. Agregue los argumentos de programa necesarios en el cuadro Argumentos de comandos.

  7. Seleccione Aceptar.

Especificación de una aplicación de llamada en un proyecto DLL de C# (.NET Core, .NET 5+)

  1. Seleccione el proyecto DLL de C# o Visual Basic en el Explorador de soluciones. Seleccione el icono Propiedades, presione Alt+Entrar, o bien haga clic con el botón derecho y seleccione Propiedades.

  2. En la pestaña Depurar, seleccione la opción Open debug launch profiles UI (Abrir la interfaz de usuario de perfiles de inicio de depuración).

  3. En el cuadro de diálogo Iniciar perfiles, seleccione el icono Crear un nuevo perfil y elija Ejecutable.

    Screenshot of the UI to create a new debug profile.

  4. En el nuevo perfil, en Ejecutable, vaya a la ubicación del archivo ejecutable (archivo .exe) y selecciónelo.

  5. En el cuadro de diálogo Perfiles de inicio, anote el nombre del perfil predeterminado y, a continuación, selecciónelo y elimínelo.

  6. Cambie el nombre del nuevo perfil y póngale el mismo nombre que el perfil predeterminado.

    Como alternativa, puede editar manualmente launchSettings.json para obtener el mismo resultado. Quiere que el primer perfil de launchSettings.json coincida con el nombre de la biblioteca de clases y desea que aparezca primero en el archivo.

Especificación de una aplicación de llamada en un proyecto DLL administrado

  1. Seleccione el proyecto DLL de C# o Visual Basic en el Explorador de soluciones. Seleccione el icono Propiedades, presione Alt+Entrar, o bien haga clic con el botón derecho y seleccione Propiedades.

  2. Asegúrese de que el campo Configuración que hay en la parte superior de la ventana esté establecido en Depurar.

  3. En Acción de inicio:

    • Para archivos DLL de .NET Framework, seleccione Programa externo de inicio y agregue la ruta de acceso y el nombre completo de la aplicación que realiza la llamada.

    • O bien, seleccione Iniciar explorador con la dirección URL y rellene la dirección URL de una aplicación de ASP.NET local.

    • En el caso de los archivos DLL de Visual Basic, la página Propiedades de depuración es diferente. Seleccione Ejecutable en el menú desplegable Inicio y, después, agregue la ruta de acceso y el nombre completo de la aplicación que realiza la llamada en el campo Ejecutable.
    • En el caso de los archivos DLL de .NET Core, la página Propiedades de depuración es diferente. Seleccione Ejecutable en el menú desplegable Inicio y, después, agregue la ruta de acceso y el nombre completo de la aplicación que realiza la llamada en el campo Ejecutable.
  4. Agregue los argumentos de línea de comandos necesarios en el campo Argumentos de la línea de comandos o Argumentos de la aplicación.

    C# Debug Properties window

  5. Use Archivo>Guardar elementos seleccionados o presione Ctrl+S para guardar los cambios.

Depuración desde el proyecto DLL

  1. Establezca puntos de interrupción en el proyecto de DLL.

  2. Haga clic con el botón derecho en el proyecto de DLL y seleccione Establecer como proyecto de inicio.

  3. Asegúrese de que el campo Configuración de soluciones está establecido en Depuración. Presione F5, haga clic en la flecha Iniciar de color verde o seleccione Depurar>Iniciar depuración.

Sugerencias adicionales:

  • Si la depuración no alcanza los puntos de interrupción, asegúrese de que la salida del archivo DLL (de forma predeterminada, la carpeta <proyecto>\Debug) es la ubicación a la que llama la aplicación que realiza la llamada.

  • Si quiere interrumpir el código en una aplicación de llamada administrada desde un archivo DLL nativo, o viceversa, habilite la depuración en modo mixto.

  • En algunos escenarios, puede que tenga que indicar al depurador dónde encontrar el código fuente. Para más información, consulte Uso de las páginas No se cargaron símbolos o No se cargaron orígenes.