Examinați fișierul de configurare a lansării
- 11 minute
Ați observat deja că Visual Studio Code utilizează fișierul launch.json pentru a configura depanatorul. Dacă creați o aplicație simplă de consolă C#, probabil că Visual Studio Code generează un fișier launch.json care are toate informațiile de care aveți nevoie pentru a depana cu succes codul. Totuși, există cazuri când trebuie să modificați o configurație de lansare, deci este important să înțelegeți atributele unei configurații de lansare.
Atributele unei configurații de lansare
Fișierul launch.json include una sau mai multe configurații de lansare în configurations listă. Configurațiile de lansare utilizează atribute pentru a accepta diferite scenarii de depanare. Următoarele atribute sunt obligatorii pentru fiecare configurație de lansare:
-
name: Numele prietenos pentru cititor atribuit configurației de lansare. -
type: Tipul de depanare de utilizat pentru configurarea lansării. -
request: Tipul de solicitare al configurației de lansare.
Această secțiune definește unele dintre atributele pe care le puteți întâlni.
Nume
Atributul name specifică numele afișat pentru configurația de lansare. Valoarea atribuită name apare în lista verticală de configurații de lansare (în panoul de controale din partea de sus a vizualizării RULARE ȘI DEPANARE).
Tip
Atributul type specifică tipul de depanare de utilizat pentru configurația de lansare. O valoare a lui codeclr specifică tipul de depanator pentru aplicațiile .NET 5+ (inclusiv aplicațiile C#).
Solicitare
Atributul request specifică tipul de solicitare pentru configurația de lansare. În prezent, valorile launch și attach sunt acceptate.
PreLaunchTask
Atributul preLaunchTask specifică o activitate de rulat înainte de depanarea programului. Activitatea propriu-zisă poate fi găsită în fișierul tasks.json, care se află în .vscode folder împreună cu fișierul launch.json. Specificarea unei activități prelaunch pentru build rulează o dotnet build comandă înainte de lansarea aplicației.
Program
Atributul program este setat pe calea executabilului dll sau al gazdei .NET pentru lansare.
Această proprietate preia în mod normal forma: ${workspaceFolder}/bin/Debug/<target-framework>/<project-name.dll>.
Unde:
-
<target-framework>este cadrul pentru care proiectul de depanare este construit. Această valoare se găsește în mod normal în fișierul de proiect ca proprietate "TargetFramework". -
<project-name.dll>este numele dll-ului de ieșire al compilării proiectului depanare. Această proprietate este de obicei aceeași cu numele de fișier al proiectului, dar cu extensia ".dll".
De exemplu: ${workspaceFolder}/bin/Debug/net10.0/Debug101.dll
Notă
Extensia .dll indică faptul că acest fișier este un fișier de bibliotecă cu legare dinamică (dll). Dacă proiectul se numește Debug101, se creează un fișier denumit Debug101.dll atunci când o activitate de compilare compilează programul utilizând fișierele Program.cs și Debug101.csproj. Poți găsi fișierul Debug101.dll în vizualizarea EXPLORER extinzând folderele "bin" și "Debug", apoi deschizând un folder care reprezintă framework-ul .NET folosit de proiectul tău de cod, cum ar fi "net10.0". Versiunea .NET Framework este specificată în fișierul .csproj.
Cwd
Atributul cwd specifică directorul de lucru al procesului țintă.
Argi
Atributul args specifică argumentele care sunt transmise programului dvs. la lansare. Nu există argumente în mod implicit.
Consolă
Atributul console specifică tipul de consolă utilizat atunci când este lansată aplicația. Opțiunile sunt internalConsole, integratedTerminalși externalTerminal. Setarea implicită este internalConsole. Tipurile de consolă sunt definite ca:
-
internalConsoleSetarea corespunde panoulUI CONSOLĂ DEBUG din zona Panouri de sub Visual Studio Code Editor. -
integratedTerminalSetarea corespunde panoului IEȘIRE din zona Panouri de sub Visual Studio Code Editor. - Setarea
externalTerminalcorespunde unei ferestre terminale externe. Aplicația linie de comandă livrată cu Windows este un exemplu de fereastră terminală.
Important
Panoul CONSOLĂ DEBUG nu acceptă intrările consolei. De exemplu, CONSOLA DEBUG nu poate fi utilizată dacă aplicația include o Console.ReadLine() instrucțiune. Atunci când lucrați la o aplicație consolă C# care citește intrările utilizatorului, console setarea trebuie să fie setată la oricare integratedTerminal dintre ele sau externalTerminalla . Aplicațiile consolă care scriu pe consolă, dar nu citesc intrările de pe consolă, pot utiliza oricare dintre cele trei console setări.
Oprire la intrare
Dacă trebuie să vă opriți la punctul de intrare al țintei, puteți seta stopAtEntry opțional să fie true.
Editarea unei configurații de lansare
Există multe scenarii atunci când poate fi necesar să particularizați fișierul de configurare a lansării. Multe dintre aceste scenarii implică scenarii complexe sau complexe de proiect. Acest modul se concentrează pe două scenarii simple atunci când este necesară actualizarea fișierului de configurare a lansării:
- Aplicația consolă C# citește intrările de pe consolă.
- Spațiul dvs. de lucru de proiect include mai multe aplicații.
Actualizați configurația de lansare pentru a include intrările consolei
După cum ați citit mai devreme, panoul CONSOLĂ DEBUG nu acceptă intrările consolei. Dacă depanați o aplicație consolă care se bazează pe intrările utilizatorului, trebuie să actualizați atributul console în configurația de lansare asociată.
Pentru a edita atributul console :
Deschideți fișierul launch.json în Visual Studio Code Editor.
Găsiți atributul consolă .
Selectați semnul două puncte și valoarea atribuită, apoi introduceți un caracter două puncte.
Observați că, atunci când suprascrieți informațiile existente cu două puncte, Visual Studio Code IntelliSense afișează cele trei opțiuni într-o listă verticală.
Selectați integratedTerminal sau externalTerminal.
Salvați fișierul launch.json.
Actualizați configurația de lansare pentru a include mai multe aplicații
Dacă spațiul de lucru are un singur proiect care poate fi lansat, extensia C# va genera automat fișierul launch.json. Dacă aveți mai multe proiecte care pot fi lansate, trebuie să modificați manual fișierul launch.json. Visual Studio Code generează un fișier launch.json utilizând șablonul de bază pe care îl puteți actualiza. În acest scenariu, creați configurații separate pentru fiecare aplicație pe care doriți să o depanați. Activitățile prelaunch, cum ar fi o activitate de compilare, pot fi create în fișierul tasks.json.
Să presupunem că lucrați la un proiect de codificare care include mai multe aplicații de consolă. Folderul de proiect rădăcină, SpecialProjects, este folderul spațiului de lucru pe care îl deschideți în Visual Studio Code atunci când lucrați la cod. Aveți două aplicații pe care le dezvoltați, Project123 și Project456. Utilizați vizualizarea RULARE ȘI DEPANARE pentru a depana aplicațiile. Doriți să selectați aplicația pe care o depanați din interfața de utilizator. De asemenea, doriți ca toate actualizările de cod salvate să fie compilate înainte de a atașa depanatorul la aplicația dvs.
Puteți obține cerințele pentru acest scenariu actualizând fișierele launch.json și tasks.json.
Următoarea captură de ecran afișează vizualizarea EXPLORER și structura de foldere care conține Project123 și Project456.
Observați că .vscode folderul care conține launch.json și fișierele tasks.json este asociat cu folderul spațiului de lucru , SpecialProjects, nu cu folderele individuale de proiect.
Următorul exemplu arată cum puteți configura fișierul launch.json pentru a include configurații atât pentru aplicațiile "Project123", cât și pentru aplicațiile "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
}
]
Observați că numele, câmpurile preLaunchTask și program sunt configurate pentru o anumită aplicație.
Atributul name specifică opțiunea de lansare selectabilă afișată în interfața utilizator vizualizare RUN AND DEBUG, atributul program specifică calea către aplicația dvs. Atributul preLaunchTask este utilizat pentru a specifica numele activității efectuate înainte de lansarea depanatorului. Fișierul tasks.json conține activitățile denumite și informațiile necesare pentru a finaliza activitatea.
Următorul exemplu arată cum puteți configura fișierul tasks.json. În acest caz, activitățile denumite specifică operațiunile de compilare specifice aplicațiilor "Project123" și "Project456". Activitatea de compilare asigură că toate editările salvate sunt compilate și reprezentate în fișierul .dll corespunzător atașat la depanator.
"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"
}
]
Cu actualizările la fișierele launch.json și tasks.json pe loc, vizualizarea RULARE ȘI DEPANARE afișează opțiunile de lansare pentru depanarea aplicației Project123 sau Project456. Următoarea captură de ecran afișează numele configurațiilor de lansare afișate în lista verticală de configurare a lansării:
Recapitula
Iată două lucruri importante de reținut din această unitate:
- Configurațiile de lansare sunt utilizate pentru a specifica atribute precum
name,type,request, ,preLaunchTask,programșiconsole. - Dezvoltatorii pot edita o configurație de lansare pentru a se potrivi cu cerințele de proiect.
Verificați-vă cunoștințele
Feedback
Această pagină a fost utilă?
Nu
Aveți nevoie de ajutor cu acest subiect?
Doriți să încercați să utilizați Întrebați Microsoft Learn pentru a clarifica sau primi îndrumări privind acest subiect?