Compartir a través de


Depuración de aplicaciones .NET sobre ordenadores de placa única ARM

La depuración de aplicaciones .NET que se ejecutan en ordenadores de placa única (SBC) basados en ARM, como Raspberry Pi, presenta un desafío único. Si lo desea, puede instalar Visual Studio Code y el SDK de .NET en el dispositivo y desarrollar localmente. Sin embargo, el rendimiento del dispositivo es tal que la codificación y la depuración localmente no son ideales. Además, la extensión Visual Studio Code para C# no es compatible con sistemas operativos ARM de 32 bits. Por lo tanto, funcionalidades como IntelliSense y la depuración en Visual Studio Code en los dispositivos ARM solo se admiten en sistemas de 64 bits.

Por estas razones, se recomienda encarecidamente desarrollar la aplicación en un equipo de desarrollo y, a continuación, implementar la aplicación en el dispositivo para la depuración remota. Si desea desarrollar y depurar localmente en el dispositivo, se requiere lo siguiente:

En el resto de este artículo se describe cómo depurar aplicaciones .NET en computadoras de placa única de manera remota desde una computadora de desarrollo.

Depuración desde Visual Studio Code (multiplataforma)

La depuración .NET en equipos de una sola placa desde Visual Studio Code requiere pasos de configuración en el SBC y en el archivo launch.json del proyecto.

Habilitar SSH en el SBC

Se requiere SSH para la depuración remota. Para habilitar SSH en Raspberry Pi, consulte Habilitar SSH en la documentación de Raspberry Pi. Asegúrese de que ha configurado SSH sin contraseña.

Importante

En este ejemplo se requiere configurar SSH sin contraseña en el dispositivo, ya que OpenSSH no admite el paso de contraseñas en la línea de comandos. Si necesita usar una contraseña, considere la posibilidad de sustituir la herramienta Plink para ssh.

Instalación del depurador remoto de Visual Studio en el SBC

En una consola de Bash en el SBC (ya sea en una sesión local o a través de SSH), ejecute el siguiente comando. Este comando descarga e instala el depurador remoto Visual Studio en el dispositivo:

curl -sSL https://aka.ms/getvsdbgsh | /bin/sh /dev/stdin -v latest -l ~/vsdbg

Configurar launch.json en Visual Studio Code

En el equipo de desarrollo, agregue una configuración de inicio al launch.json del proyecto. Si el proyecto no tiene un archivo launch.json, agregue uno cambiando a la pestaña Run, seleccionando crear un archivo launch.json y seleccionando .NET o .NET Core en el cuadro de diálogo.

La nueva configuración de launch.json debe tener un aspecto similar al siguiente:

"configurations": [
    {
        "name": ".NET Remote Launch - Self-contained",
        "type": "coreclr",
        "request": "launch",
        "program": "~/sample/sample",
        "args": [],
        "cwd": "~/sample",
        "stopAtEntry": false,
        "console": "internalConsole",
        "pipeTransport": {
            "pipeCwd": "${workspaceRoot}",
            "pipeProgram": "ssh",
            "pipeArgs": [
                "pi@raspberrypi"
            ],
            "debuggerPath": "~/vsdbg/vsdbg"
        }
    },

Tenga en cuenta lo siguiente:

  • program es el archivo ejecutable creado por dotnet publish.
  • cwd es el directorio de trabajo que se usará al iniciar la aplicación en el dispositivo.
  • pipeProgram es la ruta de acceso a un cliente SSH en el equipo local.
  • pipeArgs son los parámetros que se van a pasar al cliente SSH. Asegúrese de especificar el parámetro de contraseña, así como el pi usuario en el formato <user>@<hostname>.

Implementación de la aplicación

Despliegue la aplicación como se describe en Deploy aplicaciones .NET en ordenadores de placa única ARM. Asegúrese de que la ruta de acceso de implementación es la misma ruta de acceso especificada en el cwd parámetro en la configuración del launch.json.

Iniciar el depurador

En Visual Studio Code, en la pestaña Run and Debug, seleccione la configuración que agregó a launch.json y seleccione Start Debugging. La aplicación se inicia en el dispositivo. El depurador se puede usar para establecer puntos de interrupción, inspeccionar variables locales, etc.

Depurar desde Visual Studio en Windows

Visual Studio puede depurar aplicaciones de .NET en dispositivos remotos a través de SSH. No se requiere ninguna configuración especializada en el dispositivo. Para más información sobre el uso de Visual Studio para depurar .NET de forma remota, consulte Remote debug .NET en Linux mediante SSH.

Asegúrese de seleccionar el dotnet proceso si está depurando una implementación dependiente del marco. De lo contrario, el proceso se denominará igual que el ejecutable de la aplicación.