Depuración de aplicaciones de .NET en equipos de placa única ARM
Artículo
La depuración de aplicaciones .NET que se ejecutan en equipos de placa única basados en ARM como Raspberry Pi supone un desafío único. Si lo desea, puede instalar Visual Studio Code y el SDK de .NET en el dispositivo y desarrollar aplicaciones en modo local. Sin embargo, el rendimiento del dispositivo es tal que no se recomienda programar y depurar localmente. Además, la extensión de Visual Studio Code para C# no es compatible con los sistemas operativos ARM de 32 bits. Por tanto, la funcionalidad como IntelliSense y la depuración en Visual Studio Code en dispositivos ARM solo se admite en sistemas de 64 bits.
Por estos motivos, se recomienda encarecidamente desarrollar aplicaciones en un equipo de desarrollo y, después, implementar la aplicación en el dispositivo para la depuración remota. Si desea desarrollar y depurar aplicaciones en modo local en el dispositivo, necesita lo siguiente:
Sistema operativo de 64 bits con un entorno de escritorio, como Raspberry Pi OS (64 bits).
En el resto de este artículo, se describe cómo depurar aplicaciones de .NET en equipos de placa única de manera remota desde un equipo de desarrollo.
Importante
En el momento de escribir este artículo, la depuración remota de aplicaciones de .NET 7 en entornos linux-arm no es confiable y puede provocar que el proceso se cierre prematuramente. Este problema se está investigando. Las aplicaciones de .NET 6 que tienen como destino linux-arm y las aplicaciones de .NET 7 que tienen como destino linux-arm64 no se ven afectadas.
Depuración desde Visual Studio Code (multiplataforma)
Para la depuración de .NET en equipos de placa única desde Visual Studio Code, se requieren pasos de configuración en el equipo de placa única y en el archivo launch.json del proyecto.
En este ejemplo, es necesario configurar SSH sin contraseña en el dispositivo, ya que OpenSSH no permite pasar 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 de Visual Studio Remote Debugger en un equipo de placa única
Desde una consola Bash en el equipo de placa única (en una sesión local o mediante SSH), ejecute el comando que se indica a continuación. Este comando permite descargar e instalar Visual Studio Remote Debugger en el dispositivo:
Configuración de launch.json en Visual Studio Code
En el equipo de desarrollo, agregue una configuración de inicio al archivo launch.json del proyecto. Si el proyecto no tiene un archivo launch.json, agregue uno; para ello, cambie a la pestaña Ejecutar, seleccione create a launch.json file (Crear un archivo launch.json) y después .NET o .NET Core en el cuadro de diálogo.
La nueva configuración de launch.json debe ser similar a la siguiente:
program es el archivo ejecutable que ha creado dotnet publish.
cwd es el directorio de trabajo que se va a usar al iniciar la aplicación en el dispositivo.
pipeProgram es la ruta de acceso a un cliente SSH en la máquina 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 usuario pi en el formato <user>@<hostname>.
program es la ruta de acceso al runtime de .NET en el dispositivo.
args es la ruta de acceso al ensamblado que se va a depurar en el dispositivo.
cwd es el directorio de trabajo que se va a usar al iniciar la aplicación en el dispositivo.
justMyCode se establece en false para asegurarse de que el depurador se interrumpe en los puntos de interrupción del código de la aplicación.
pipeProgram es la ruta de acceso a un cliente SSH en la máquina 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 usuario pi en el formato <user>@<hostname>.
En Visual Studio Code, en la pestaña Ejecutar y depurar, seleccione la configuración que agregó a launch.json y elija Iniciar depuración. La aplicación se inicia en el dispositivo. El depurador se puede usar para establecer puntos de interrupción, inspeccionar variables locales y mucho más.
Depuración desde Visual Studio en Windows
Visual Studio puede depurar aplicaciones .NET en dispositivos remotos mediante SSH. No se necesita ninguna configuración adicional en el dispositivo. Para obtener más información sobre el uso de Visual Studio para depurar .NET de forma remota, vea Depuración remota de .NET en Linux con SSH.
Asegúrese de seleccionar el proceso dotnet si va a depurar una implementación dependiente del marco. De lo contrario, el proceso se denominará igual que el archivo ejecutable de la aplicación.
Colaborar con nosotros en GitHub
El origen de este contenido se puede encontrar en GitHub, donde también puede crear y revisar problemas y solicitudes de incorporación de cambios. Para más información, consulte nuestra guía para colaboradores.
Comentarios de .NET
.NET es un proyecto de código abierto. Seleccione un vínculo para proporcionar comentarios:
Aprendizaje práctico de cómo implementar y depurar de manera remota aplicaciones de ASP.NET Core en Azure App Service directamente mediante Visual Studio 2022.
Cree soluciones de un extremo a otro en Microsoft Azure para crear Azure Functions, implementar y administrar aplicaciones web, desarrollar soluciones que usen Azure Storage, etc.