Überprüfen der Startkonfigurationsdatei
- 11 Minuten
Sie haben bereits gesehen, dass Visual Studio Code die launch.json Datei zum Konfigurieren des Debuggers verwendet. Wenn Sie eine einfache C#-Konsolenanwendung erstellen, generiert Visual Studio Code wahrscheinlich eine launch.json Datei mit allen Informationen, die Sie zum erfolgreichen Debuggen des Codes benötigen. Es gibt jedoch Fälle, in denen Sie eine Startkonfiguration ändern müssen, daher ist es wichtig, die Attribute einer Startkonfiguration zu verstehen.
Attribute einer Startkonfiguration
Die launch.json Datei enthält eine oder mehrere Startkonfigurationen in der configurations Liste. Die Startkonfigurationen verwenden Attribute, um verschiedene Debugszenarien zu unterstützen. Die folgenden Attribute sind für jede Startkonfiguration obligatorisch:
-
name: Der leserfreundliche Name, der der Startkonfiguration zugewiesen ist. -
type: Der Typ des Debuggers, der für die Startkonfiguration verwendet werden soll. -
request: Der Anforderungstyp der Startkonfiguration.
In diesem Abschnitt werden einige der Attribute definiert, die möglicherweise auftreten.
Name
Das name Attribut gibt den Anzeigenamen für die Startkonfiguration an. Der name zugewiesene Wert wird in der Dropdownliste mit den Startkonfigurationen angezeigt (im Steuerelementbereich oben in der Ansicht AUSFÜHREN UND DEBUGGEN).
Typ
Das type Attribut gibt den Typ des Debuggers an, der für die Startkonfiguration verwendet werden soll. Ein Wert von codeclr gibt den Debugger-Typ für .NET 5+ Anwendungen an (einschließlich C# Anwendungen).
Anfrage
Das request Attribut gibt den Anforderungstyp für die Startkonfiguration an. Derzeit werden die Werte launch und attach unterstützt.
Vorstartaufgabe
Das preLaunchTask Attribut gibt eine Aufgabe an, die vor dem Debuggen des Programms ausgeführt werden soll. Die Aufgabe selbst befindet sich in der Datei tasks.json, die sich zusammen mit der launch.json-Datei im .vscode Ordner befindet. Wenn Sie eine vorab auszuführende Aufgabe von build angeben, wird vor dem Starten der Anwendung ein dotnet build-Befehl ausgeführt.
Programm
Das program-Attribut wird auf den Pfad der Anwendungs-DLL oder der .NET-Hostdatei gesetzt, die gestartet werden soll.
Diese Eigenschaft hat normalerweise die Form: ${workspaceFolder}/bin/Debug/<target-framework>/<project-name.dll>.
Ort:
-
<target-framework>ist das Framework, für das das Debugprojekt erstellt wird. Dieser Wert wird normalerweise in der Projektdatei als Eigenschaft "TargetFramework" gefunden. -
<project-name.dll>ist der Name der Buildausgabe-DLL des debuggeden Projekts. Diese Eigenschaft ist normalerweise mit dem Projektdateinamen identisch, jedoch mit der Erweiterung ".dll".
Beispiel: ${workspaceFolder}/bin/Debug/net10.0/Debug101.dll
Hinweis
Die .dll Erweiterung gibt an, dass diese Datei eine DLL-Datei (Dynamic Link Library) ist. Wenn Ihr Projekt "Debug101" heißt, wird eine Datei mit dem Namen Debug101.dll erstellt, wenn eine Buildaufgabe Ihr Programm mithilfe der Dateien Program.cs und Debug101.csproj kompiliert. Sie finden die Debug101.dll Datei in der EXPLORER-Ansicht, indem Sie die Ordner "bin" und "Debug" erweitern und dann einen Ordner öffnen, der das .NET Framework darstellt, das von Ihrem Codeprojekt verwendet wird, z. B. "net10.0". Die .NET Framework-Version wird in Ihrer CSPROJ-Datei angegeben.
Cwd
Das cwd Attribut gibt das Arbeitsverzeichnis des Zielprozesses an.
Argumente
Das args Attribut gibt die Argumente an, die beim Start an Ihr Programm übergeben werden. Standardmäßig sind keine Argumente vorhanden.
Konsole
Das console Attribut gibt den Konsolentyp an, der beim Starten der Anwendung verwendet wird. Als Optionen sind internalConsole, integratedTerminal und externalTerminal verfügbar. Die Standardeinstellung ist internalConsole. Die Konsolentypen sind wie folgt definiert:
- Die
internalConsoleEinstellung entspricht dem DEBUG CONSOLE-Panel im Bereich "Panels" unter dem Visual Studio Code Editor. - Die
integratedTerminalEinstellung entspricht dem AUSGABEbereich im Bereich "Panels" unter dem Visual Studio Code-Editor. - Die
externalTerminalEinstellung entspricht einem externen Terminalfenster. Die Eingabeaufforderungsanwendung, die im Lieferumfang von Windows ist, ist ein Beispiel für ein Terminalfenster.
Von Bedeutung
Der DEBUG CONSOLE-Bereich unterstützt keine Konsoleneingaben. Die DEBUG KONSOLE kann beispielsweise nicht verwendet werden, wenn die Anwendung eine Console.ReadLine()-Anweisung enthält. Wenn Sie an einer C#-Konsolenanwendung arbeiten, die die Benutzereingabe liest, muss die console-Einstellung auf integratedTerminal oder externalTerminal festgelegt werden. Konsolenanwendungen, die in die Konsole schreiben, aber keine Eingaben aus der Konsole lesen, können eine der drei console Einstellungen verwenden.
Anhalten beim Einstieg
Wenn Sie am Einstiegspunkt des Ziels anhalten müssen, können Sie optional stopAtEntry auf true einstellen.
Bearbeiten einer Startkonfiguration
Es gibt viele Szenarien, in denen Sie die Startkonfigurationsdatei möglicherweise anpassen müssen. Viele dieser Szenarien umfassen erweiterte oder komplexe Projektszenarien. Dieses Modul konzentriert sich auf zwei einfache Szenarien beim Aktualisieren der Startkonfigurationsdatei:
- Ihre C#-Konsolenanwendung liest Eingaben aus der Konsole vor.
- Ihr Projektarbeitsbereich umfasst mehrere Anwendungen.
Aktualisieren der Startkonfiguration zur Aufnahme von Konsoleneingaben
Wie Sie weiter oben gelesen haben, unterstützt der DEBUG CONSOLE-Bereich keine Konsoleneingaben. Wenn Sie eine Konsolenanwendung debuggen, die auf Benutzereingaben basiert, müssen Sie das console Attribut in der zugehörigen Startkonfiguration aktualisieren.
So bearbeiten Sie das console Attribut:
Öffnen Sie die launch.json Datei im Visual Studio Code-Editor.
Suchen Sie das Konsolen-Attribut .
Wählen Sie den Doppelpunkt und den zugewiesenen Wert aus, und geben Sie dann einen Doppelpunkt ein.
Wenn Sie die vorhandenen Informationen mit einem Doppelpunkt überschreiben, zeigt Visual Studio Code IntelliSense die drei Optionen in einer Dropdownliste an.
Wählen Sie entweder IntegratedTerminal oder ExternalTerminal aus.
Speichern Sie die launch.json Datei.
Aktualisieren der Startkonfiguration für mehrere Anwendungen
Wenn Ihr Arbeitsbereich nur über ein startbares Projekt verfügt, generiert die C#-Erweiterung automatisch die launch.json Datei. Wenn Sie mehr als ein startbares Projekt haben, müssen Sie Die launch.json Datei manuell ändern. Visual Studio Code generiert eine launch.json Datei mithilfe der Basisvorlage, die Sie aktualisieren können. In diesem Szenario erstellen Sie separate Konfigurationen für jede Anwendung, die Sie debuggen möchten. Vorabstartaufgaben, z. B. eine Buildaufgabe, können in der datei tasks.json erstellt werden.
Angenommen, Sie arbeiten an einem Codierungsprojekt, das mehrere Konsolenanwendungen enthält. Der Stammprojektordner SpecialProjects ist der Arbeitsbereichsordner, den Sie in Visual Studio Code öffnen, wenn Sie an Ihrem Code arbeiten. Sie haben zwei Anwendungen, die Sie entwickeln, Project123 und Project456. Sie verwenden die RUN AND DEBUG-Ansicht, um die Anwendungen zu debuggen. Sie möchten über die Benutzeroberfläche die Anwendung auswählen, die Sie debuggen. Außerdem möchten Sie, dass alle gespeicherten Codeupdates kompiliert werden, bevor Sie den Debugger an Ihre Anwendung anfügen.
Sie können die Anforderungen für dieses Szenario erreichen, indem Sie die launch.json- und tasks.json-Dateien aktualisieren.
Der folgende Screenshot zeigt die EXPLORER-Ansicht und die Ordnerstruktur mit Project123 und Project456.
Beachten Sie, dass der Ordner, der .vscode die launch.json und tasks.json Dateien enthält, dem Arbeitsbereichsordner " SpecialProjects" und nicht den einzelnen Projektordnern zugeordnet ist.
Das folgende Beispiel zeigt, wie Sie die launch.json Datei so konfigurieren können, dass Konfigurationen für die Anwendungen "Project123" und "Project456" enthalten sind.
"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
}
]
Beachten Sie, dass der Name, preLaunchTask und Programmfelder für eine bestimmte Anwendung konfiguriert sind.
Das Name-Attribut gibt die auswählbare Startoption an, die auf der Benutzeroberfläche der RUN AND DEBUG-Ansicht angezeigt wird, das Programm-Attribut gibt den Pfad zu Ihrer Anwendung an. Das preLaunchTask-Attribut wird verwendet, um den Namen der Aufgabe anzugeben, die vor dem Starten des Debuggers ausgeführt wird. Die Datei tasks.json enthält die benannten Aufgaben und die erforderlichen Informationen, um die Aufgabe abzuschließen.
Das folgende Beispiel zeigt, wie Sie die tasks.json Datei konfigurieren können. In diesem Fall geben die benannten Aufgaben Buildvorgänge an, die für die Anwendungen Project123 und Project456 spezifisch sind. Die Buildaufgabe stellt sicher, dass alle gespeicherten Bearbeitungen kompiliert und in der entsprechenden .dll Datei dargestellt werden, die dem Debugger zugeordnet ist.
"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"
}
]
Nachdem Sie die launch.json- und tasks.json-Dateien aktualisiert haben, werden in der RUN AND DEBUG-Ansicht Startoptionen zum Debuggen entweder der Project123- oder der Project456-Anwendung angezeigt. Der folgende Screenshot zeigt die Namen der Startkonfigurationen, die im Dropdownmenü "Startkonfiguration" angezeigt werden:
Zusammenfassung
Hier sind zwei wichtige Punkte, die Sie aus dieser Einheit beachten sollten:
- Startkonfigurationen werden verwendet, um Attribute wie
name,type,request,preLaunchTask,programundconsoleanzugeben. - Entwickler können eine Startkonfiguration bearbeiten, um die Projektanforderungen zu erfüllen.
Überprüfen Sie Ihr Wissen
Feedback
War diese Seite hilfreich?
No
Benötigen Sie Hilfe zu diesem Thema?
Möchten Sie versuchen, Ask Learn zu verwenden, um Sie durch dieses Thema zu klären oder zu leiten?