Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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:
- Un sistema operativo de 64 bits con un entorno de escritorio, como Raspberry Pi OS (64 bits).
-
Visual Studio Code con la extensión C#.
- Deshabilite la aceleración de hardware.
- .NET SDK 10 o posterior.
- Instale mediante el script dotnet-installcomo en una implementación dependiente del marco. Asegúrese de agregar una
DOTNET_ROOTvariable de entorno y de agregar el directorio .dotnet a$PATH.
- Instale mediante el script dotnet-installcomo en una implementación dependiente del marco. Asegúrese de agregar una
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:
-
programes el archivo ejecutable creado pordotnet publish. -
cwdes el directorio de trabajo que se usará al iniciar la aplicación en el dispositivo. -
pipeProgrames la ruta de acceso a un cliente SSH en el equipo local. -
pipeArgsson los parámetros que se van a pasar al cliente SSH. Asegúrese de especificar el parámetro de contraseña, así como elpiusuario 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.