Granska startkonfigurationsfilen
- 11 minuter
Du har redan sett att Visual Studio Code använder launch.json-filen för att konfigurera felsökningsprogrammet. Om du skapar ett enkelt C#-konsolprogram är det troligt att Visual Studio Code genererar en launch.json fil som innehåller all information som du behöver för att felsöka koden. Det finns dock fall då du behöver ändra en startkonfiguration, så det är viktigt att förstå attributen för en startkonfiguration.
Attribut för en startkonfiguration
Filen launch.json innehåller en eller flera startkonfigurationer i configurations listan. Startkonfigurationerna använder attribut för att stödja olika felsökningsscenarier. Följande attribut är obligatoriska för varje startkonfiguration:
-
name: Det läsvänliga namn som tilldelats startkonfigurationen. -
type: Vilken typ av felsökningsprogram som ska användas för startkonfigurationen. -
request: Typ av begäran för startkonfigurationen.
Det här avsnittet definierar några av de attribut som du kan stöta på.
Namn
Attributet name anger visningsnamnet för startkonfigurationen. Värdet som tilldelats name visas i listrutan för startkonfigurationer (på kontrollpanelen överst i vyn KÖR OCH FELSÖK).
Typ
Attributet type anger vilken typ av felsökningsprogram som ska användas för startkonfigurationen. Värdet codeclr anger felsökningstypen för .NET 5+-program (inklusive C#-program).
Begäran
Attributet request anger typ av begäran för startkonfigurationen. För närvarande stöds värdena launch och attach .
Uppgift före lansering
Attributet preLaunchTask anger en uppgift som ska köras innan du felsöker programmet. Själva uppgiften finns i tasks.json-filen, som finns i .vscode mappen tillsammans med launch.json-filen. Att ange en förstartsuppgift build innebär att köra ett dotnet build-kommando innan programmet startas.
Program
Attributet program är inställt på sökvägen för den körbara program-dll:en eller .NET-värdapplikationen som ska startas.
Den här egenskapen har normalt formuläret : ${workspaceFolder}/bin/Debug/<target-framework>/<project-name.dll>.
Var:
-
<target-framework>är det ramverk som felsökningsprojektet skapas för. Det här värdet finns normalt i projektfilen som egenskapen TargetFramework. -
<project-name.dll>är namnet på dll:et för debugged-projektets build-utdata. Den här egenskapen är normalt samma som projektfilens namn men med tillägget ".dll".
Till exempel: ${workspaceFolder}/bin/Debug/net10.0/Debug101.dll
Anmärkning
Tillägget.dll anger att den här filen är en DLL-fil (Dynamic Link Library). Om projektet heter Debug101 skapas en fil med namnet Debug101.dll när en bygguppgift kompilerar programmet med hjälp av filerna Program.cs och Debug101.csproj. Du hittar Debug101.dll-filen i EXPLORER-vyn genom att expandera mapparna "bin" och "Debug" och sedan öppna en mapp som representerar det .NET-ramverk som används av kodprojektet, till exempel "net10.0". .NET Framework-versionen anges i .csproj-filen.
Cwd
Attributet cwd anger arbetskatalogen för målprocessen.
Argument
Attributet args anger de argument som skickas till programmet vid start. Det finns inga argument som standard.
Konsol
Attributet console anger vilken typ av konsol som används när programmet startas. Alternativen är internalConsole, integratedTerminaloch externalTerminal. Standardinställningen är internalConsole. Konsoltyperna definieras som:
- Inställningen
internalConsolemotsvarar panelen DEBUG CONSOLE i området Paneler under Visual Studio Code-redigeraren. - Inställningen
integratedTerminalmotsvarar utdatapanelen i området Paneler under Visual Studio Code-redigeraren. - Inställningen
externalTerminalmotsvarar ett externt terminalfönster. Kommandotolken som medföljer Windows är ett exempel på ett terminalfönster.
Viktigt!
Panelen FELSÖKNINGSKONSOL stöder inte konsolindata. Felsökningskonsolen kan till exempel inte användas om programmet innehåller en Console.ReadLine() -instruktion. När du arbetar med ett C#-konsolprogram som läser indata console från användaren måste inställningen vara inställd på antingen integratedTerminal eller externalTerminal. Konsolprogram som skriver till konsolen, men inte läser indata från konsolen, kan använda någon av de tre console inställningarna.
Stoppa vid inmatning
Om du behöver stanna vid inträdespunkten för målet kan du valfritt ställa in stopAtEntry till true.
Redigera en startkonfiguration
Det finns många scenarier när du kan behöva anpassa startkonfigurationsfilen. Många av dessa scenarier omfattar avancerade eller komplexa projektscenarier. Den här modulen fokuserar på två enkla scenarier när du uppdaterar startkonfigurationsfilen:
- C#-konsolprogrammet läser indata från konsolen.
- Projektarbetsytan innehåller fler än ett program.
Uppdatera startkonfigurationen för att hantera konsolindata
Som du läste tidigare har panelen FELSÖKNINGSKONSOL inte stöd för konsolindata. Om du felsöker ett konsolprogram som förlitar sig på användarindata måste du uppdatera console attributet i den associerade startkonfigurationen.
Så här redigerar du attributet console :
Öppna filen launch.json i Visual Studio Code-redigeraren.
Leta upp konsolattributet .
Välj kolon och tilldelat värde och ange sedan ett kolontecken.
Observera att när du skriver över den befintliga informationen med ett kolon visar Visual Studio Code IntelliSense de tre alternativen i en listruta.
Välj antingen integreradTerminal eller externTerminal.
Spara filen launch.json.
Uppdatera startkonfigurationen för att hantera flera program
Om din arbetsyta bara har ett startbart projekt genererar C#-tillägget automatiskt launch.json-filen. Om du har fler än ett startbart projekt måste du ändra launch.json filen manuellt. Visual Studio Code genererar en launch.json fil med hjälp av den grundläggande mall som du kan uppdatera. I det här scenariot skapar du separata konfigurationer för varje program som du vill felsöka. Förstartsuppgifter, till exempel en byggaktivitet, kan skapas i filen tasks.json.
Anta att du arbetar med ett kodningsprojekt som innehåller flera konsolprogram. Rotprojektmappen SpecialProjects är den arbetsytemapp som du öppnar i Visual Studio Code när du arbetar med koden. Du har två program som du utvecklar, Project123 och Project456. Du använder vyn KÖR OCH FELSÖK för att felsöka programmen. Du vill välja det program som du felsöker från användargränssnittet. Du vill också att sparade koduppdateringar ska kompileras innan du kopplar felsökningsprogrammet till ditt program.
Du kan uppfylla kraven för det här scenariot genom att uppdatera launch.json- och tasks.json-filerna.
Följande skärmbild visar EXPLORER-vyn och mappstrukturen som innehåller Project123 och Project456.
Observera att .vscode mappen som innehåller launch.json- och tasks.json-filerna är associerad med arbetsytemappen , SpecialProjects, inte de enskilda projektmapparna.
I följande exempel visas hur du kan konfigurera launch.json-filen så att den innehåller konfigurationer för både "Project123" och "Project456"-programmen.
"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
}
]
Observera att fälten name, preLaunchTask och program är konfigurerade för ett visst program.
Namnattributet anger det valbara startalternativet som visas i användargränssnittet för KÖRNING OCH FELSÖKNING. Programattributet anger sökvägen till ditt program. Attributet preLaunchTask används för att ange namnet på den aktivitet som utförs innan felsökningsprogrammet startas. Filen tasks.json innehåller de namngivna aktiviteterna och den information som krävs för att slutföra uppgiften.
I följande exempel visas hur du kan konfigurera tasks.json-filen. I det här fallet anger de namngivna uppgifterna byggåtgärder som är specifika för programmen "Project123" och "Project456". Bygguppgiften säkerställer att alla sparade redigeringar kompileras och representeras i motsvarande .dll fil som är kopplad till felsökningsprogrammet.
"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"
}
]
Med dina uppdateringar av launch.json och tasks.json filer på plats visar vyn KÖR OCH FELSÖK startalternativ för felsökning av antingen Project123- eller Project456-programmet. Följande skärmbild visar namnen på de startkonfigurationer som visas i listrutan för startkonfiguration:
Sammanfattning
Här är två viktiga saker att komma ihåg från den här lektionen:
- Startkonfigurationer används för att ange attribut som
name,type,request,preLaunchTask, ,programochconsole. - Utvecklare kan redigera en startkonfiguration för att uppfylla projektkraven.