Déboguer des applications .NET sur des ordinateurs monocartes ARM
Article
Le débogage d’applications .NET s’exécutant sur des ordinateurs monocartes ARM comme Raspberry Pi présente un défi unique. Si vous le souhaitez, vous pouvez installer Visual Studio Code et le Kit de développement logiciel (SDK) .NET sur l’appareil et développer localement. Toutefois, les performances de l’appareil sont telles que le codage et le débogage en local ne sont pas idéaux. En outre, l’extension Visual Studio Code pour C# n’est pas compatible avec les systèmes d’exploitation ARM 32 bits. Par conséquent, les fonctionnalités telles qu’IntelliSense et le débogage dans Visual Studio Code sur les appareils ARM ne sont prises en charge que dans les systèmes 64 bits.
Pour ces raisons, il est fortement recommandé de développer votre application sur un ordinateur de développement, puis de déployer l’application sur l’appareil pour le débogage à distance. Si vous souhaitez développer et déboguer localement sur l’appareil, vous devez procéder comme suit :
Un système d’exploitation 64 bits avec un environnement de bureau, tel que Raspberry Pi OS (64 bits).
Kit de développement logiciel (SDK) .NET version 6.0 ou ultérieure.
Installez à l’aide du script dotnet-installcomme dans un déploiement dépendant du framework. Veillez à ajouter une variable d’environnement DOTNET_ROOT et à ajouter le répertoire .dotnet à $PATH.
Le reste de cet article explique comment déboguer des applications .NET sur des ordinateurs monocartes à distance à partir d’un ordinateur de développement.
Important
À partir de cette écriture, le débogage à distance d’applications .NET 7 dans des environnements linux-arm n’est pas fiable et peut entraîner la fin prématurée du processus. Ce problème est en cours de résolution. Les applications .NET 6 qui ciblent linux-arm et les applications .NET 7 qui ciblent linux-arm64 ne sont pas affectées.
Déboguer à partir de Visual Studio Code (multiplateforme)
Le débogage de .NET sur des ordinateurs monocartes à partir de Visual Studio Code nécessite des étapes de configuration sur les ordinateurs monocartes et dans le fichier launch.json du projet.
Cet exemple vous oblige à configurer SSH sans mot de passe sur votre appareil, car OpenSSH ne prend pas en charge le transfert de mots de passe sur la ligne de commande. Si vous devez utiliser un mot de passe, envisagez de remplacer l’outil Plink par ssh.
Installer le Débogueur distant Visual Studio sur l’ordinateur monocarte
Dans une console Bash sur l’ordinateur monocarte (dans une session locale ou via SSH), exécutez la commande suivante. Cette commande télécharge et installe le Débogueur distant Visual Studio sur l’appareil :
Sur l’ordinateur de développement, ajoutez une configuration de lancement au launch.json du projet. Si le projet n’a pas de fichier launch.json, ajoutez-en un en basculant vers l’onglet Exécution, en sélectionnant créer un fichier launch.json et en sélectionnant .NET ou .NET Core dans la boîte de dialogue.
La nouvelle configuration dans launch.json doit ressembler à l’une des options suivantes :
program est le fichier exécutable créé par dotnet publish.
cwd est le répertoire de travail à utiliser lors du lancement de l’application sur l’appareil.
pipeProgram est le chemin d’accès à un client SSH sur l’ordinateur local.
pipeArgs sont les paramètres à transférer au client SSH. Veillez à spécifier le paramètre de mot de passe, ainsi que l’utilisateur pi au format <user>@<hostname>.
program est le chemin d’accès au runtime .NET sur l’appareil.
args est le chemin d’accès à l’assembly pour le débogage sur l’appareil.
cwd est le répertoire de travail à utiliser lors du lancement de l’application sur l’appareil.
justMyCode est défini sur false pour vous assurer que le débogueur s’arrête sur les points d’arrêt dans le code de l’application.
pipeProgram est le chemin d’accès à un client SSH sur l’ordinateur local.
pipeArgs sont les paramètres à transférer au client SSH. Veillez à spécifier le paramètre de mot de passe, ainsi que l’utilisateur pi au format <user>@<hostname>.
Dans Visual Studio Code, sous l’onglet Exécuter et Déboguer, sélectionnez la configuration que vous avez ajoutée à launch.json et sélectionnez Démarrer le débogage. L’application se lance sur l’appareil. Le débogueur peut être utilisé pour définir des points d’arrêt, inspecter les locaux, etc.
Déboguer à partir de Visual Studio sur Windows
Visual Studio peut déboguer des applications .NET sur des appareils distants via SSH. Aucune configuration spécialisée n’est requise sur l’appareil. Pour plus d’informations sur l’utilisation de Visual Studio pour déboguer .NET à distance, consultez Déboguer à distance sur Linux à l’aide de SSH.
Veillez à sélectionner le processus dotnet si vous déboguez un déploiement dépendant du framework. Dans le cas contraire, le processus sera nommé de la même façon que l’exécutable de l’application.
Collaborer avec nous sur GitHub
La source de ce contenu se trouve sur GitHub, où vous pouvez également créer et examiner les problèmes et les demandes de tirage. Pour plus d’informations, consultez notre guide du contributeur.
Commentaires sur .NET
.NET est un projet open source. Sélectionnez un lien pour fournir des commentaires :
Générez des solutions de bout en bout dans Microsoft Azure pour créer des fonctions Azure Functions, implémenter et gérer des applications web, développer des solutions qui utilisent le Stockage Azure, et bien plus encore.