Examiner le fichier de configurations de lancement
- 11 minutes
Vous avez déjà vu que Visual Studio Code utilise le fichier launch.json pour configurer le débogueur. Si vous créez une application console C# simple, Visual Studio Code génère probablement un fichier launch.json avec toutes les informations dont vous avez besoin pour déboguer votre code. Toutefois, il existe des cas où vous devez modifier une configuration de lancement. vous devez donc bien comprendre les attributs d’une configuration de lancement.
Attributs d’une configuration de lancement
Le fichier launch.json comprend une ou plusieurs configurations de lancement dans la liste configurations. Les configurations de lancement utilisent des attributs pour prendre en charge différents scénarios de débogage. Les attributs suivants sont obligatoires pour chaque configuration de lancement :
-
name: nom convivial attribué à la configuration de lancement. -
type: spécifie le type de débogueur à utiliser pour cette configuration de lancement. -
request: type de demande de la configuration de lancement.
Cette section définit certains des attributs que vous pouvez rencontrer.
Nom
L’attribut name spécifie le nom d’affichage de la configuration de lancement. La valeur attribuée à name s’affiche dans la liste déroulante des configurations de lancement (dans le panneau des contrôles, en haut de la vue EXÉCUTER ET DÉBOGUER).
Type
L’attribut type spécifie le type de débogueur à utiliser pour cette configuration de lancement. Une valeur de codeclr spécifie le type de débogueur pour les applications .NET 5 + (y compris les applications C#).
Requête
L’attribut request spécifie le type de demande de cette configuration de lancement. Seules les valeurs launch et attach sont actuellement prises en charge.
PreLaunchTask
L’attribut preLaunchTask spécifie une tâche à exécuter avant le débogage de votre programme. La tâche elle-même se trouve dans le fichier tasks.json, qui se situe dans le dossier .vscode avec le fichier launch.json. La spécification d’une tâche de pré-lancement de build exécute une commande dotnet build avant de lancer l’application.
Programme
L’attribut program est défini sur le chemin d’accès de la dll d’application ou de l’exécutable hôte .NET à lancer.
Cette propriété prend normalement la forme : ${workspaceFolder}/bin/Debug/<target-framework>/<project-name.dll>.
Où :
-
<target-framework>est l’infrastructure pour laquelle le projet de débogage est en cours de génération. Cette valeur se trouve normalement dans le fichier projet en tant que propriété « TargetFramework ». -
<project-name.dll>est le nom de la dll de sortie de build du projet débogué. Cette propriété est normalement identique au nom du fichier projet, mais avec une extension « .dll ».
Par exemple : ${workspaceFolder}/bin/Debug/net10.0/Debug101.dll
Remarque
L’extension .dll indique que ce fichier est un fichier de bibliothèque de liens dynamiques (dll). Si votre projet est nommé Debug101, un fichier nommé Debug101.dll est créé lorsqu’une tâche de build compile votre programme à l’aide des fichiers Program.cs et Debug101.csproj. Vous trouverez le fichier Debug101.dll dans la vue EXPLORATEUR en développant les dossiers « bin » et « Debug », puis en ouvrant un dossier qui représente le .NET Framework utilisé par votre projet de code, tel que « net10.0 ». La version de .NET Framework est spécifiée dans votre fichier .csproj.
Cwd
L’attribut cwd spécifie le répertoire de travail du processus cible.
Args
L’attribut args spécifie les arguments qui sont passés à votre programme au lancement. Il n’existe aucun argument par défaut.
Console
L’attribut console spécifie le type de console utilisé lors du lancement de l’application. Les options sont internalConsole, integratedTerminal et externalTerminal. La valeur par défaut est internalConsole. Les types de console sont définis comme suit :
- Le paramètre
internalConsolecorrespond au panneau CONSOLE DE DÉBOGAGE dans la zone Panneaux sous l’éditeur Visual Studio Code. - Le paramètre
integratedTerminalcorrespond au panneau SORTIE dans la zone Panneaux sous l’éditeur Visual Studio Code. - Le paramètre
externalTerminalcorrespond à une fenêtre de terminal externe. L’application d’invite de commandes fournie avec Windows est un exemple de fenêtre de terminal.
Important
Le panneau CONSOLE DE DÉBOGAGE ne prend pas en charge l’entrée dans la console. Par exemple, la CONSOLE DE DÉBOGAGE ne peut pas être utilisée si l’application a une instruction Console.ReadLine(). Lorsque vous travaillez sur une application console C# qui lit l’entrée utilisateur, le paramètre console doit être défini sur integratedTerminal ou externalTerminal. Les applications console qui écrivent dans la console, mais qui ne lisent pas d’entrée à partir de la console, peuvent utiliser n’importe lequel des trois paramètres console.
S’arrêter à l’entrée
Si vous devez vous arrêter au point d’entrée de la cible, vous pouvez éventuellement définir stopAtEntry sur true.
Modifier une configuration de lancement
Il existe de nombreux scénarios dans lesquels vous devez peut-être personnaliser le fichier de configuration de lancement. La plupart de ces scénarios impliquent des scénarios de projet avancés ou complexes. Ce module se concentre sur deux scénarios simples où la mise à jour du fichier de configuration de lancement est requise :
- Votre application console C# lit les entrées de la console.
- Votre espace de travail de projet comprend plusieurs applications.
Mettre à jour la configuration de lancement pour prendre en charge l’entrée de console
Comme vous l’avez lu précédemment, le panneau CONSOLE DE DÉBOGAGE ne prend pas en charge l’entrée de console. Si vous déboguez une application console qui s’appuie sur l’entrée utilisateur, vous devez mettre à jour l’attribut console dans la configuration de lancement associée.
Pour modifier l’attribut console :
Ouvrez le fichier launch.json dans l’éditeur Visual Studio Code.
Localisez l’attribut console.
Sélectionnez les deux-points et la valeur attribuée, puis entrez un caractère deux-points.
Quand vous remplacez les informations existantes par un signe deux-points, notez que Visual Studio Code IntelliSense affiche les trois options dans une liste déroulante.
Sélectionnez integratedTerminal ou externalTerminal.
Enregistrez le fichier launch.json.
Mettre à jour la configuration de lancement pour prendre en charge plusieurs applications
Si votre espace de travail a un seul projet pouvant être lancé, l’extension C# génère automatiquement le fichier launch.json. Si vous avez plusieurs projets pouvant être lancés, vous devez modifier votre fichier launch.json manuellement. Visual Studio Code génère un fichier launch.json à l’aide du modèle de base que vous pouvez mettre à jour. Dans ce scénario, vous créez des configurations distinctes pour chaque application que vous souhaitez déboguer. Des tâches de pré-lancement, comme une tâche de génération, peuvent être créées dans le fichier tasks.json.
Supposons que vous travaillez sur un projet de codage qui comprend plusieurs applications console. Le dossier de projet racine, SpecialProjects, est le dossier d’espace de travail que vous ouvrez dans Visual Studio Code lorsque vous travaillez sur votre code. Vous développez deux applications, Project123 et Project456. Vous utilisez la vue EXÉCUTER ET DÉBOGUER pour déboguer les applications. Vous souhaitez sélectionner l’application que vous déboguez à partir de l’interface utilisateur. Vous souhaitez également que toutes les mises à jour de code enregistrées soient compilées avant d’attacher le débogueur à votre application.
Vous pouvez satisfaire aux exigences de ce scénario en mettant à jour les fichiers launch.json et tasks.json.
La capture d’écran suivante montre la vue EXPLORATEUR et la structure de dossiers contenant Project123 et Project456.
Notez que le dossier .vscode contenant les fichiers launch.json et tasks.json est associé au dossier de l’espace de travail, SpecialProjects, et non aux dossiers de projet individuels.
L'exemple suivant montre comment configurer le fichier launch.json pour inclure des configurations pour les applications « Project123 » et « Project456 ».
"version": "0.2.0",
"configurations": [
{
"name": "Launch Project123",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "buildProject123",
"program": "${workspaceFolder}/Project123/bin/Debug/net10.0/Project123.dll",
"args": [],
"cwd": "${workspaceFolder}/Project123",
"console": "internalConsole",
"stopAtEntry": false
},
{
"name": "Launch Project456",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "buildProject456",
"program": "${workspaceFolder}/Project456/bin/Debug/net10.0/Project456.dll",
"args": [],
"cwd": "${workspaceFolder}/Project456",
"console": "internalConsole",
"stopAtEntry": false
}
]
Notez que les champs name, preLaunchTask et program sont tous configurés pour une application spécifique.
L’attribut name spécifie l’option de lancement sélectionnable qui s’affiche dans l’interface utilisateur de la vue EXÉCUTER ET DÉBOGUER. L’attribut program spécifie le chemin de votre application. L’attribut preLaunchTask est utilisé pour spécifier le nom de la tâche effectuée avant le lancement du débogueur. Le fichier tasks.json contient les tâches nommées et les informations nécessaires à l’exécution de la tâche.
L'exemple suivant montre comment configurer le fichier tasks.json. Dans ce cas, les tâches nommées spécifient des opérations de build spécifiques aux applications « Project123 » et « Project456 ». La tâche de génération garantit que toutes les modifications enregistrées sont compilées et représentées dans le fichier .dll correspondant attaché au débogueur.
"version": "2.0.0",
"tasks": [
{
"label": "buildProject123",
"command": "dotnet",
"type": "process",
"args": [
"build",
"${workspaceFolder}/Project123/Project123.csproj",
"/property:GenerateFullPaths=true",
"/consoleloggerparameters:NoSummary"
],
"problemMatcher": "$msCompile"
},
{
"label": "buildProject456",
"command": "dotnet",
"type": "process",
"args": [
"build",
"${workspaceFolder}/Project456/Project456.csproj",
"/property:GenerateFullPaths=true",
"/consoleloggerparameters:NoSummary"
],
"problemMatcher": "$msCompile"
}
]
Une fois vos mises à jour des fichiers launch.json et tasks.json en place, la vue EXÉCUTER ET DÉBOGUER affiche les options de lancement pour le débogage de l’application Project123 ou Project456. La capture d’écran suivante montre les noms des configurations de lancement affichées dans la liste déroulante de configuration de lancement :
Récapitulatif
Voici deux points importants à retenir de cette unité :
- Les configurations de lancement sont utilisées pour spécifier des attributs comme
name,type,request,preLaunchTask,programetconsole. - Les développeurs peuvent modifier la configuration de lancement pour répondre aux exigences du projet.
Vérifier vos connaissances
Commentaires
Est-ce que cette page vous a été utile?
Non
Avez-vous besoin d’aide à ce sujet?
Voulez-vous essayer d’utiliser Ask Learn pour clarifier ou vous guider à travers ce sujet ?