Menú de navegaciónMenú
Categorías

La mejor forma de Aprender Programación online y en español www.campusmvp.es

?id=0b52106a-3cf0-439a-88b0-6d610d7409a9

Cómo depurar aplicaciones .NET para Linux con Visual Studio desde Windows

Imagen ornamentalUna de las mejores características de .NET Core cuando salió (y ahora de .NET) es que permite crear aplicaciones multiplataforma. Esto significa que podemos crear aplicaciones para Windows, Linux o macOS con la misma base de código y, si usamos .NET Maui o Uno Platform, podemos crear también aplicaciones móviles para Android o iOS, lo cual es genial.

Aunque se pueden utilizar otro tipo de editores, como Visual Studio Code o Jetbrains Rider, lo cierto es que la mayoría de los desarrolladores utilizan Visual Studio. Lo malo de Visual Studio es que solamente funciona en Windows y en macOS, por lo que si quieres depurar aplicaciones Linux solo te queda la opción de usar un depurador remoto ¿verdad?

Pues no. Lo cierto es que desde Visual Studio puedes depurar aplicaciones Linux directamente en Windows gracias a la magia del subsistema Linux de Windows.

Para ello hay que habilitar algunas opciones y hacer algunos ajustes en Visual Studio.

Antes de nada, asegúrate de que tienes instalado WSL2 en tu Windows y luego mira el vídeo que te pongo a continuación para ver paso a paso cómo lograrlo. Aunque esta característica está pensada para depurar sobre todo aplicaciones Web ejecutándose en Linux, también funciona con aplicaciones de consola, que es lo que muestro en el vídeo, pero tienen una pequeña limitación:

Otra cosa interesante: aunque, como se explica en el vídeo, en el caso de las aplicaciones de consola no puedes responder a las peticiones de datos que se muestren por la consola, lo que sí puedes conseguir de manera sencilla es pasarle parámetros al ejecutable cuando se vaya a lanzar para depurar.

Para ello debes abrir el archivo launchSettings.json de la carpeta Properties y añadir la siguiente propiedad a la definición del nodo de depuración con Linux:

"commandLineArgs": "tuApp.dll <parametros>"

Es decir, obviamente hay que sustituir el nombre de tu aplicación y los parámetros que quieras. Solo un detalle importante: debes poner la extensión .dll y no .exe, aunque sea un programa de línea de comandos. El motivo es que en .NET el .exe en realidad es un lanzador para el verdadero ensamblado que es la DLL y, por lo tanto, lo que se lanza y se depura es este último archivo.

¡Espero que te resulte útil!

José Manuel Alarcón Fundador de campusMVP, es ingeniero industrial y especialista en consultoría de empresa. Ha escrito diversos libros, habiendo publicado hasta la fecha cientos de artículos sobre informática e ingeniería en publicaciones especializadas. Microsoft lo ha reconocido como MVP (Most Valuable Professional) en desarrollo web desde el año 2004 hasta la actualidad. Puedes seguirlo en Twitter en @jm_alarcon o leer sus blog técnico o personal. Ver todos los posts de José Manuel Alarcón

¿Te ha gustado este post?
Pues espera a ver nuestro boletín mensual...

Suscríbete a la newsletter

La mejor formación online para desarrolladores como tú

Agregar comentario

Los datos anteriores se utilizarán exclusivamente para permitirte hacer el comentario y, si lo seleccionas, notificarte de nuevos comentarios en este artículo, pero no se procesarán ni se utilizarán para ningún otro propósito. Lee nuestra política de privacidad.