Het startconfiguratiebestand onderzoeken
- 11 minuten
U hebt al gezien dat Visual Studio Code het launch.json-bestand gebruikt om het foutopsporingsprogramma te configureren. Als u een eenvoudige C#-consoletoepassing maakt, genereert Visual Studio Code waarschijnlijk een launch.json-bestand met alle informatie die u nodig hebt om fouten in uw code op te sporen. Er zijn echter gevallen waarin u een startconfiguratie moet wijzigen, dus het is belangrijk om inzicht te krijgen in de kenmerken van een startconfiguratie.
Kenmerken van een startconfiguratie
Het bestand launch.json bevat een of meer startconfiguraties in de configurations lijst. De startconfiguraties maken gebruik van kenmerken ter ondersteuning van verschillende foutopsporingsscenario's. De volgende kenmerken zijn verplicht voor elke startconfiguratie:
-
name: De lezervriendelijke naam die is toegewezen aan de startconfiguratie. -
type: het type foutopsporingsprogramma dat moet worden gebruikt voor de startconfiguratie. -
request: Het aanvraagtype van de startconfiguratie.
In deze sectie worden enkele kenmerken gedefinieerd die u kunt tegenkomen.
Naam
Het name kenmerk geeft de weergavenaam voor de startconfiguratie op. De waarde die is toegewezen aan name verschijnt in de vervolgkeuzelijst met startconfiguraties (in het besturingspaneel bovenaan de Uitvoeren en Foutopsporing-view).
Typologie
Het type kenmerk geeft het type foutopsporingsprogramma op dat moet worden gebruikt voor de startconfiguratie. Een waarde van codeclr het type foutopsporingsprogramma voor .NET 5+ toepassingen (inclusief C#-toepassingen).
Aanvraag
Het request kenmerk geeft het aanvraagtype voor de startconfiguratie op. Momenteel worden de waarden launch ondersteund.attach
PreLaunchTask
Het preLaunchTask kenmerk geeft een taak op die moet worden uitgevoerd voordat u fouten in uw programma opspoort. De taak zelf vindt u in het tasks.json-bestand, dat zich in de .vscode map bevindt, samen met het launch.json-bestand. Als u een prelaunch-taak opgeeft, wordt er een build-opdracht uitgevoerd voordat de toepassing wordt gestart.
Programma
Het program kenmerk is ingesteld op het pad van het uitvoerbare bestand van de toepassings-DLL of .NET-host om te starten.
Deze eigenschap heeft normaal gesproken de volgende vorm: ${workspaceFolder}/bin/Debug/<target-framework>/<project-name.dll>.
Waar:
-
<target-framework>is het framework waarvoor het foutopsporingsproject wordt gebouwd. Deze waarde wordt normaal gesproken in het projectbestand gevonden als de eigenschap TargetFramework. -
<project-name.dll>is de naam van de dll die de build-uitvoer van het gedebugde project genereert. Deze eigenschap is normaal gesproken hetzelfde als de bestandsnaam van het project, maar met de extensie '.dll'.
Bijvoorbeeld: ${workspaceFolder}/bin/Debug/net10.0/Debug101.dll
Opmerking
De .dll extensie geeft aan dat dit bestand een dll-bestand (Dynamic Link Library) is. Als uw project de naam Debug101 heeft, wordt er een bestand met de naam Debug101.dll gemaakt wanneer een build-taak uw programma compileert met behulp van de bestanden Program.cs en Debug101.csproj. U vindt het bestandDebug101.dll in de VERKENNER-weergave door de mappen 'bin' en 'Fouten opsporen' uit te vouwen en vervolgens een map te openen die het .NET Framework vertegenwoordigt dat wordt gebruikt door uw codeproject, zoals 'net10.0'. De .NET Framework-versie is opgegeven in uw .csproj-bestand.
Cwd
Het cwd kenmerk geeft de werkmap van het doelproces aan.
Argumenten
Het args kenmerk geeft de argumenten op die worden doorgegeven aan uw programma bij het starten. Er zijn standaard geen argumenten.
Console
Het console kenmerk geeft het type console op dat wordt gebruikt wanneer de toepassing wordt gestart. De opties zijn internalConsole, integratedTerminalen externalTerminal. De standaardinstelling is internalConsole. De consoletypen worden gedefinieerd als:
- De
internalConsoleinstelling komt overeen met het deelvenster DEBUG CONSOLE in het gebied Panels onder de Visual Studio Code Editor. - De
integratedTerminalinstelling komt overeen met het deelvenster OUTPUT in het gebied Panels onder de Visual Studio Code Editor. - De
externalTerminalinstelling komt overeen met een extern terminalvenster. De opdrachtprompttoepassing die bij Windows wordt geleverd, is een voorbeeld van een terminalvenster.
Belangrijk
Het paneel DEBUG CONSOLE biedt geen ondersteuning voor console-invoer. De debugconsole kan bijvoorbeeld niet worden gebruikt als de toepassing een Console.ReadLine() instructie bevat. Wanneer u werkt aan een C#-consoletoepassing die gebruikersinvoer leest, moet de console instelling zijn ingesteld op of integratedTerminalexternalTerminal. Consoletoepassingen die naar de console schrijven, maar geen invoer van de console lezen, kunnen een van de drie console instellingen gebruiken.
Stoppen bij ingang
Als u wilt stoppen op het toegangspunt van het doel, kunt u eventueel instellen stopAtEntry op true.
Een startconfiguratie bewerken
Er zijn veel scenario's waarin u het startconfiguratiebestand mogelijk moet aanpassen. Veel van deze scenario's hebben betrekking op geavanceerde of complexe projectscenario's. Deze module richt zich op twee eenvoudige scenario's wanneer het bijwerken van het opstartconfiguratiebestand vereist is:
- De C#-consoletoepassing leest invoer uit de console.
- Uw projectwerkruimte bevat meer dan één toepassing.
De startconfiguratie bijwerken om consoleinvoer mogelijk te maken
Zoals u eerder hebt gelezen, biedt het deelvenster DEBUG CONSOLE geen ondersteuning voor console-invoer. Als u fouten opspoort in een consoletoepassing die afhankelijk is van gebruikersinvoer, moet u het console kenmerk bijwerken in de bijbehorende startconfiguratie.
Het kenmerk bewerken console :
Open het launch.json-bestand in de Visual Studio Code-editor.
Zoek het consolekenmerk .
Selecteer de dubbele punt en de toegewezen waarde, en voer vervolgens het teken dubbelpunt in.
Wanneer u de bestaande gegevens overschrijft met een dubbele punt, worden in Visual Studio Code IntelliSense de drie opties in een vervolgkeuzelijst weergegeven.
Kies integratedTerminal of externalTerminal.
Sla het launch.json bestand op.
De startconfiguratie bijwerken voor meerdere toepassingen
Als uw werkruimte slechts één startbaar project heeft, genereert de C#-extensie automatisch het launch.json bestand. Als u meer dan één startbaar project hebt, moet u uw launch.json bestand handmatig wijzigen. Visual Studio Code genereert een launch.json bestand met behulp van de basissjabloon die u kunt bijwerken. In dit scenario maakt u afzonderlijke configuraties voor elke toepassing die u wilt debuggen. Prelaunch-taken, zoals een buildtaak, kunnen worden gemaakt in het tasks.json-bestand.
Stel dat u aan een codeerproject werkt dat verschillende consoletoepassingen bevat. De hoofdprojectmap SpecialProjects is de werkruimtemap die u opent in Visual Studio Code wanneer u aan uw code werkt. U hebt twee toepassingen die u ontwikkelt, Project123 en Project456. U gebruikt de weergave RUN AND DEBUG om fouten in de toepassingen op te sporen. U wilt de toepassing selecteren die u aan het debuggen bent vanuit de gebruikersinterface. U wilt ook dat opgeslagen code-updates worden gecompileerd voordat u het foutopsporingsprogramma aan uw toepassing koppelt.
U kunt de vereisten voor dit scenario bereiken door de launch.json- en tasks.json-bestanden bij te werken.
In de volgende schermopname ziet u de weergave EXPLORER en de mapstructuur met Project123 en Project456.
U ziet dat de .vscode map met de launch.json- en tasks.json-bestanden is gekoppeld aan de werkruimtemap SpecialProjects, niet aan de afzonderlijke projectmappen.
In het volgende voorbeeld ziet u hoe u het launch.json-bestand zo kunt configureren dat configuraties worden opgenomen voor zowel de toepassingen 'Project123' als '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
}
]
U ziet dat de naam, preLaunchTask en programmavelden allemaal zijn geconfigureerd voor een specifieke toepassing.
Het naamkenmerk geeft de selecteerbare startoptie op die wordt weergegeven in de gebruikersinterface RUN AND DEBUG view. Het programmakenmerk geeft het pad naar uw toepassing op. Het kenmerk preLaunchTask wordt gebruikt om de naam op te geven van de taak die wordt uitgevoerd voordat het foutopsporingsprogramma wordt gestart. Het bestandtasks.json bevat de benoemde taken en de informatie die nodig is om de taak te voltooien.
In het volgende voorbeeld ziet u hoe u het tasks.json-bestand kunt configureren. In dit geval geven de benoemde taken buildbewerkingen op die specifiek zijn voor de toepassingen 'Project123' en 'Project456'. De build-taak zorgt ervoor dat alle opgeslagen bewerkingen worden gecompileerd en weergegeven in het bijbehorende .dll-bestand dat is gekoppeld aan het foutopsporingsprogramma.
"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"
}
]
Nu uw updates voor de launch.json- en tasks.json-bestanden zijn geïnstalleerd, worden in de weergave RUN AND DEBUG opties weergegeven voor het opsporen van fouten in de Project123- of Project456-toepassing. In de volgende schermopname ziet u de namen van de startconfiguraties die worden weergegeven in de vervolgkeuzelijst voor de startconfiguratie:
Samenvatting
Hier volgen twee belangrijke dingen die u in deze les moet onthouden:
- Startconfiguraties worden gebruikt voor het opgeven van kenmerken zoals
name,type,request, ,preLaunchTask, enprogramconsole. - Ontwikkelaars kunnen een startconfiguratie bewerken om aan projectvereisten te voldoen.
Uw kennis controleren
Feedback
Is deze pagina nuttig?
Nee
Need help with this topic?
Want to try using Ask Learn to clarify or guide you through this topic?