Depuración remota de un proyecto de C# o Visual Basic en Visual Studio

Para depurar una aplicación de Visual Studio que se ha implementado en otro equipo, instale y ejecute las herramientas remotas en el equipo en el que haya implementado la aplicación, configure el proyecto para que se conecte al equipo remoto desde Visual Studio y, después, ejecute la aplicación.

Screenshot of remote debugger components.

Para obtener información sobre la depuración remota de Aplicaciones de Windows universales (UWP), vea Depuración de un paquete de aplicaciones instalado.

Requisitos

El depurador remoto se admite con Windows 7 y versiones más recientes y las versiones de Windows Server a partir de Windows Server 2008 Service Pack 2. Para obtener una lista completa de los requisitos, vea Requisitos.

Nota

No se admite la depuración entre dos equipos conectados a través de un proxy. La depuración a través de una conexión de latencia alta o de ancho de banda bajo, como Internet mediante acceso telefónico o Internet a través de países o regiones, no se recomienda y puede producir un error o ser inaceptablemente lenta.

Descarga e instalación de las herramientas remotas

En el dispositivo o servidor remoto en el que desea depurar, en lugar de en el equipo de Visual Studio, descargue e instale la versión correcta de las herramientas remotas desde los vínculos de la tabla siguiente.

  • Descargue la actualización más reciente de las herramientas remotas para su versión de Visual Studio. Las versiones anteriores de las herramientas remotas no son compatibles con las versiones posteriores de Visual Studio. (Por ejemplo, si usa Visual Studio 2019, descargue la actualización más reciente de las herramientas remotas para Visual Studio 2019. En este escenario, no descargue las herramientas remotas para Visual Studio 2022).
  • Descargue las herramientas remotas con la misma arquitectura que el equipo en el que las va a instalar. Por ejemplo, si desea depurar aplicaciones x86 en un equipo remoto que ejecuta un sistema operativo x64, instale las herramientas remotas x64. Para depurar aplicaciones x86, ARM o x64 en un sistema operativo ARM64, instale las herramientas remotas ARM64.
Versión Vínculo Notas
Visual Studio 2022 Herramientas remotas Compatible con todas las versiones de Visual Studio 2022. Descargue la versión que coincida con el sistema operativo del dispositivo (x86, x64 o ARM64). En versiones anteriores de Windows Server, consulte Desbloquear la descarga de archivos para obtener ayuda con la descarga de herramientas remotas.
Visual Studio 2019 Herramientas remotas Compatible con todas las versiones de Visual Studio 2019. Descargue la versión que coincida con el sistema operativo del dispositivo (x86, x64 o ARM64). En versiones anteriores de Windows Server, consulte Desbloquear la descarga de archivos para obtener ayuda con la descarga de herramientas remotas.
Visual Studio 2017 Herramientas remotas Compatible con todas las versiones de Visual Studio 2017. Descargue la versión que coincida con el sistema operativo del dispositivo (x86, x64 o ARM64). En Windows Server, vea Desbloquear la descarga del archivo para obtener ayuda con la descarga de las herramientas remotas.
Visual Studio 2015 Herramientas remotas Las Herramientas remotas para Visual Studio 2015 están disponibles en My.VisualStudio.com. Si se le solicita, únase al programa gratuito Visual Studio Dev Essentials o inicie sesión con su identificador de suscripción de Visual Studio. En Windows Server, vea Desbloquear la descarga del archivo para obtener ayuda con la descarga de las herramientas remotas.
Visual Studio 2013 Herramientas remotas Página de descarga en la documentación de Visual Studio 2013
Visual Studio 2012 Herramientas remotas Página de descarga de la documentación de Visual Studio 2012
Versión Vínculo Notas
Visual Studio 2019 Herramientas remotas Compatible con todas las versiones de Visual Studio 2019. Descargue la versión que coincida con el sistema operativo del dispositivo (x86, x64 o ARM64). En Windows Server, vea Desbloquear la descarga del archivo para obtener ayuda con la descarga de las herramientas remotas. Para obtener la última versión de las herramientas remotas, abra el documento de Visual Studio 2022.
Visual Studio 2017 Herramientas remotas Compatible con todas las versiones de Visual Studio 2017. Descargue la versión que coincida con el sistema operativo del dispositivo (x86, x64 o ARM64). En Windows Server, vea Desbloquear la descarga del archivo para obtener ayuda con la descarga de las herramientas remotas.
Visual Studio 2015 Herramientas remotas Las Herramientas remotas para Visual Studio 2015 están disponibles en My.VisualStudio.com. Si se le solicita, únase al programa gratuito Visual Studio Dev Essentials o inicie sesión con su identificador de suscripción de Visual Studio. En Windows Server, vea Desbloquear la descarga del archivo para obtener ayuda con la descarga de las herramientas remotas.
Visual Studio 2013 Herramientas remotas Página de descarga en la documentación de Visual Studio 2013
Visual Studio 2012 Herramientas remotas Página de descarga de la documentación de Visual Studio 2012

Puede ejecutar el depurador remoto mediante la copia de msvsmon.exe en el equipo remoto, en lugar de instalar las herramientas remotas. Sin embargo, el Asistente para configuración de Remote Debugger (rdbgwiz.exe) solo está disponible cuando se instalan las herramientas remotas. Es posible que tenga que usar el Asistente para configuración si desea ejecutar el depurador remoto como un servicio. Para más información, vea (Opcional) Configuración del depurador remoto como servicio.

Nota

  • Para depurar aplicaciones de Windows 10 o versiones posteriores en dispositivos ARM, use ARM64, que está disponible con la última versión de las herramientas remotas.
  • Para depurar aplicaciones de Windows 10 en dispositivos Windows RT, use ARM, que solo está disponible en la descarga de las herramientas remotas de Visual Studio 2015.
  • Para depurar aplicaciones x64 en un sistema operativo ARM64, ejecute el archivo x64 msvsmon.exe instalado con las herramientas remotas ARM64.

Sugerencia

En algunos escenarios, puede ser más eficaz ejecutar el depurador remoto desde un recurso compartido de archivos. Para obtener más información, vea Ejecución del depurador remoto desde un recurso compartido de archivos.

Configurar el depurador remoto

  1. En el equipo remoto, busque e inicie Remote Debugger en el menú Inicio.

    Si no tiene permisos administrativos en el equipo remoto, haga clic con el botón derecho en la aplicación Remote Debugger y seleccione Ejecutar como administrador. En caso contrario, solo debe iniciarlo de la forma habitual.

    Si tiene previsto realizar una asociación a un proceso que se ejecuta como administrador o se ejecuta en una cuenta de usuario diferente (como IIS), haga clic con el botón derecho en la aplicación Remote Debugger y seleccione Ejecutar como administrador. Para obtener más información, vea Ejecución del depurador remoto como administrador.

  2. La primera vez que inicies el depurador remoto (o antes de haberlo configurado), aparecerá el asistente de configuración de depuración remota.

    En la mayoría de los escenarios, elija Siguiente hasta que llegue a la página Configurar firewall de Windows del asistente.

    Screenshot of remote debugger configuration.

    Screenshot of remote debugger configuration.

    Si la API de servicios web de Windows no está instalada, lo que sucede solo en Windows Server 2008 R2, seleccione el botón Instalar.

  3. Seleccione al menos un tipo de red en el que desee usar las herramientas remotas. Si los equipos están conectados a través de un dominio, debe elegir el primer elemento. Si los equipos están conectados a través de un grupo de trabajo o un grupo en el hogar, elija el segundo o tercer elemento según corresponda.

    A continuación, seleccione Finalizar para iniciar el depurador remoto.

    A continuación, seleccione Configurar depuración remota para iniciar el depurador remoto.

  4. Cuando se completa la configuración, aparecerá la ventana Remote Debugger.

    Screenshot of remote debugger window

    Screenshot of remote debugger window

    El depurador remoto ahora está esperando una conexión. Use el nombre del servidor y el número de puerto que se muestran para establecer la configuración de conexión remota en Visual Studio.

Para detener el depurador remoto, seleccione Archivo>Salir. Puede reiniciarlo desde el menú Inicio o desde la línea de comandos:

<Remote debugger installation directory>\msvsmon.exe

Nota

Si tiene que agregar permisos para usuarios adicionales, cambiar el modo de autenticación o el número de puerto para el depurador remoto, vea Configuración del depurador remoto.

Depuración remota del proyecto

El depurador no puede implementar aplicaciones de escritorio de Visual C# o Visual Basic en un equipo remoto, pero se pueden depurar de manera remota como se describe a continuación. En el procedimiento siguiente se supone que quiere depurarlo en un equipo denominado MJO-DL, como se muestra en la ilustración siguiente.

  1. Cree un proyecto WPF denominado MyWpf.

    Si está intentando depurar de forma remota una aplicación MAUI en lugar de WPF, vea Depuración remota de una aplicación .NET MAUI en Windows.

  2. Establezca un punto de interrupción en alguna parte del código fácilmente accesible.

    Por ejemplo, puede establecer un punto de interrupción en un controlador de botón. Para ello, abra MainWindow.xaml y agregue un control de botón desde el Cuadro de herramientas; luego, haga doble clic en el botón para abrir su controlador.

  3. En el Explorador de soluciones, haga clic con el botón derecho en el proyecto y, luego, elija Propiedades.

  4. En la página Propiedades, elija la pestaña Depurar.

    Para los proyectos de C# destinados a .NET Core o .NET 5+, a partir de Visual Studio 2022, elija la interfaz de usuario Debug launch profiles (Depurar perfiles de inicio ) en la pestaña Depurar para configurar las opciones de depuración remota.

    Screenshot of the Debug launch profile UI in the Visual Studio Project Properties for C# and .NET.

    De lo contrario, cambie la configuración de depuración remota directamente en la pestaña Depurar.

    Screenshot of the Debug tab in the Visual Studio Project Properties. The Use remote machine property is set to 'MJO-DL:4022'.

  5. Asegúrese de que el cuadro de texto Directorio de trabajo está vacío.

  6. Elija Usar equipo remoto y escriba nombre_del_equipo:puerto en el cuadro de texto. (El número de puerto se muestra en la ventana del depurador remoto. El número de puerto aumenta 2 en cada versión de Visual Studio).

    En este ejemplo, use:

    MJO-DL:4026 en Visual Studio 2022

    MJO-DL:4024 en Visual Studio 2019

  7. Asegúrese de que la opción Habilitar la depuración de código nativo no está seleccionada.

  8. Compile el proyecto.

  9. Cree una carpeta en el equipo remoto en la misma ruta de acceso que la carpeta Depurar del equipo de Visual Studio: <ruta de acceso de origen>\MyWPF\MyWPF\bin\Debug.

  10. Copie el archivo ejecutable que acaba de compilar desde el equipo de Visual Studio a la carpeta recién creada en el equipo remoto.

    Precaución

    No realice cambios en el código ni vuelva a realizar la compilación (o tendrá que repetir este paso). El archivo ejecutable que copió en el equipo remoto debe coincidir exactamente con el origen local y los símbolos.

    Puede copiar el proyecto manualmente, usar XCopy, Robocopy, PowerShell u otras opciones.

  11. Asegúrese de que el depurador remoto se ejecuta en el equipo de destino (si no es así, busque Depurador remoto en el menú Inicio). La ventana del depurador remoto tiene este aspecto.

    Screenshot of remote debugger window for VS 2022.

    Screenshot of remote debugger window for VS 2019.

  12. En Visual Studio, inicie la depuración (Depurar > Iniciar depuración o presione F5).

  13. Si se le solicita, escriba las credenciales de red para conectarse al equipo remoto.

    Las credenciales necesarias varían en función de la configuración de seguridad de la red. Por ejemplo, en un equipo de dominio, puede escribir el nombre de dominio y la contraseña. En una máquina que no sea de dominio, puede escribir el nombre del equipo y un nombre de cuenta de usuario válido, como MJO-DL\name@something.com, junto con la contraseña correcta.

    Verá que la ventana principal de la aplicación de WPF está abierta en el equipo remoto.

  14. Si es necesario, tome medidas para alcanzar el punto de interrupción. Debe ver que el punto de interrupción está activo. Si no lo está, quiere decir que no se han cargado los símbolos de la aplicación. Vuelva a intentarlo y, si no funciona, obtenga información sobre la carga de símbolos y sobre cómo solucionar problemas con este proceso en Descripción de los archivos de símbolos y la configuración de símbolos de Visual Studio.

  15. En la máquina de Visual Studio, verá que la ejecución se detiene en el punto de interrupción.

    Si tiene archivos que no son de código que la aplicación debe usar, tendrá que incluirlos en el proyecto de Visual Studio. Cree una carpeta de proyecto para los archivos adicionales (en el Explorador de soluciones, haga clic en Agregar > Nueva carpeta). Después, agregue los archivos a la carpeta (en el Explorador de soluciones, haga clic en Agregar > Elemento existente y, luego, seleccione los archivos). En la página Propiedades de cada archivo, establezca Copiar en el directorio de resultado en Copiar siempre.

Depuración remota de una aplicación MAUI de .NET en Windows

Las aplicaciones .NET MAUI son aplicaciones empaquetadas que deben registrarse cuando se implementan, no solo se copian en una máquina remota. Para depurar de forma remota, puede implementar una versión desempaquetada de la aplicación.

Use uno de los métodos siguientes para depurar de forma remota:

  • Publique la aplicación en el dispositivo remoto como una aplicación desempaquetada siguiendo los pasos descritos en Uso de la CLI para publicar aplicaciones .NET MAUI de .NET sin empaquetar para Windows y, a continuación, siga los pasos descritos en este artículo para depurar de forma remota. (Omita los pasos para copiar la aplicación).

  • Siga los pasos de este artículo, incluidos los pasos para crear un perfil de inicio de depuración para el proyecto. Antes de iniciar la depuración, edite manualmente el archivo launchSettings.json, reemplazando el valor commandNameProject por MsixPackage, como se muestra aquí.

    "Remote Profile": {
      "commandName": "MsixPackage",
      "remoteDebugEnabled": true,
      "remoteDebugMachine": "170.200.20.22",
      "authenticationMode": "None"
    }
    

    Al iniciar la depuración, este método implementa primero una versión desempaquetada de la aplicación y la inicia.

    Nota:

    No se puede editar launchSettings.json en el cuadro de diálogo Perfil de inicio de depuración una vez que cambie el valor a MsixPackage.

Configurar la depuración con símbolos remotos

Puede depurar su código con los símbolos que se generan en el equipo de Visual Studio. El rendimiento del depurador remoto es mucho mejor cuando se usan símbolos locales. Si tiene que usar símbolos remotos, deberá indicar al monitor de depuración remota que busque símbolos en el equipo remoto.

Puede usar el siguiente modificador de línea de comandos de msvsmon para usar símbolos remotos para el código administrado: Msvsmon /FallbackLoadRemoteManagedPdbs

Para más información, vea la ayuda de depuración remota (presione F1 en la ventana del depurador remoto, o haga clic en Ayuda > Uso).