Tutustu käynnistysmääritystiedostoon
- 11 minuuttia
Olet jo nähnyt, että Visual Studio Code käyttää launch.json -tiedostoa virheenkorjauksen määrittämiseen. Jos olet luomassa yksinkertaista C#-konsolisovellusta, Visual Studio Code luo todennäköisesti launch.json tiedoston, joka sisältää kaikki koodin virheenkorjaukseen tarvittavat tiedot. On kuitenkin tapauksia, joissa sinun on muokattava käynnistysmääritystä, joten on tärkeää ymmärtää käynnistysmäärityksen määritteet.
Käynnistysmäärityksen määritteet
launch.json sisältää yhden tai useamman käynnistysmäärityksen configurations luettelossa. Käynnistysmääritykset käyttävät määritteitä erilaisten virheenkorjausskenaarioiden tukemiseen. Seuraavat määritteet ovat pakollisia jokaisen käynnistysmäärityksen kohdalla:
-
name: Käynnistysmääritykselle määritetty lukijaystävällinen nimi. -
type: Käynnistysmäärityksessä käytettävä virheenkorjaustyyppi. -
request: Käynnistysmäärityksen pyyntötyyppi.
Tässä osiossa määritetään jotkin määritteet, joita voit kohdata.
Nimi
name Määrite määrittää käynnistysmäärityksen näyttönimen. Määritetty arvo name näkyy käynnistysmääritysten avattavassa valikossa (hallintapaneelissa SUORITA JA VIRHEENKORJAUS -näkymän yläreunassa).
Tyyppi
type Määrite määrittää virheenkorjauksen tyypin, jota käytetään käynnistysmäärityksessä. Arvo määrittelee codeclr virheenkorjaustyypin .NET 5+ -sovelluksille (mukaan lukien C#-sovellukset).
Pyytää
request Määrite määrittää käynnistysmäärityksen pyyntötyypin. Tällä hetkellä arvoja launch ja attach tuetaan.
PreLaunchTask
preLaunchTask Määrite määrittää tehtävän, joka suoritetaan ennen ohjelman virheenkorjausta. Tehtävä itse löytyy tasks.json-tiedostosta .vscode , joka on kansiossa yhdessä launch.json -tiedoston kanssa. Esikäynnistystehtävän build määrittäminen suorittaa komennon dotnet build ennen sovelluksen käynnistämistä.
Ohjelma
Attribuutti program asetetaan sovelluksen dll- tai .NET-isäntäsuoritettavan tiedoston polulle, joka käynnistetään.
Tämän ominaisuuden muoto on yleensä: ${workspaceFolder}/bin/Debug/<target-framework>/<project-name.dll>.
Missä:
-
<target-framework>on kehys, jota varten virheenkorjausprojektia luodaan. Tämä arvo löytyy yleensä projektitiedostosta TargetFramework-ominaisuutena. -
<project-name.dll>on virheenkorjatun projektin koontitulosteluettelon nimi. Tämä ominaisuus on yleensä sama kuin projektin tiedostonimi, mutta tunniste on ".dll" .
Esimerkki: ${workspaceFolder}/bin/Debug/net10.0/Debug101.dll
Huomautus
.dll tiedostotunniste ilmaisee, että tämä tiedosto on dynaaminen linkkikirjaston (dll) tiedosto. Jos projektisi nimi on Debug101, tiedosto nimeltä Debug101.dll luodaan, kun koontitehtävä kääntää ohjelmasi käyttämällä Program.cs- ja Debug101.csproj-tiedostoja. LöydätDebug101.dll-tiedoston EXPLORER-näkymästä laajentamalla "bin"- ja "Debug"-kansioita ja avaamalla kansion, joka edustaa koodiprojektisi käyttämää .NET-kehystä, kuten "net10.0". .NET Framework -versio on määritetty .csproj-tiedostossasi.
Cwd
cwd Määrite määrittää kohdeprosessin työhakemiston.
Args
args Määrite määrittää argumentit, jotka välitetään ohjelmaan käynnistettäväksi. Argumentteja ei ole oletusarvoisesti.
Konsoli
console Määrite määrittää konsolin tyypin, jota käytetään, kun sovellus käynnistetään. Vaihtoehdot ovat internalConsole, integratedTerminalja externalTerminal. Oletusasetus on internalConsole. Konsolityypit on määritetty seuraavasti:
- Asetus
internalConsolevastaa DEBUG CONSOLE -paneelia Visual Studio Code Editorin alla olevalla Paneelit-alueella. - Asetus
integratedTerminalvastaa Visual Studio Code Editorin alla olevalla Paneelit-alueella olevaa OUTPUT-paneelia. - Asetus
externalTerminalvastaa ulkoista pääteikkunaa. Windowsin mukana tuleva komentokehotesovellus on esimerkki pääteikkunasta.
Tärkeää
DEBUG CONSOLE -paneeli ei tue konsolin syötettä. Esimerkiksi DEBUG CONSOLE -virheenkorjauskonsolia ei voi käyttää, jos sovelluksessa on Console.ReadLine() lauseke. Kun käsittelet C#-konsolisovellusta, joka lukee käyttäjän syötteitä, console asetuksen arvoksi on asetettava joko integratedTerminal tai externalTerminal. Konsolisovellukset, jotka kirjoittavat konsoliin, mutta eivät lue syötettä konsolista, voivat käyttää mitä tahansa näistä kolmesta console asetuksista.
Pysähdy sisäänkäynnillä
Jos sinun täytyy lopettaa kohteen aloituskohtaan, voit valinnaisesti määrittää stopAtEntry arvoksi true.
Käynnistysmäärityksen muokkaaminen
On paljon tilanteita, jossa sinun on ehkä mukautettava käynnistysmääritystiedostoa. Moniin näistä skenaarioista liittyy edistyneitä tai monimutkaisia projektiskenaarioita. Tässä moduulissa keskitytään kahteen yksinkertaiseen skenaarioon, kun käynnistyksen määritystiedoston päivittäminen vaaditaan:
- C#-konsolisovellus lukee syötteen konsolista.
- Projektityötilassasi on useampi kuin yksi sovellus.
Päivitä käynnistysmääritykset konsolin syötteen mukaan
Kuten luit aiemmin, DEBUG CONSOLE -paneeli ei tue konsolin syötettä. Jos korjaat konsolisovellusta, joka käyttää käyttäjän syötettä, sinun on päivitettävä console määrite liittyvässä käynnistysmäärityksessä.
Voit muokata määritettä seuraavasti console :
Avaa launch.json-tiedosto Visual Studio Code Editorissa.
Etsi konsolimäärite .
Valitse kaksoispiste ja määritetty arvo ja kirjoita kaksoispistemerkki.
Huomaa, että kun korvaat olemassa olevat tiedot kaksoispisteellä, Visual Studio Code IntelliSense näyttää avattavan luettelon kolme vaihtoehtoa.
Valitse joko integratedTerminal tai externalTerminal.
Tallenna launch.json tiedosto.
Päivitä käynnistysmääritys useille sovelluksille sopivaksi
Jos työtilassasi on vain yksi käynnistettävä projekti, C#-laajennus luo automaattisesti launch.json tiedoston. Jos sinulla on useampi kuin yksi käynnistettävä projekti, sinun on muokattava launch.json tiedostoa manuaalisesti. Visual Studio Code luo launch.json-tiedoston päivittämistäsi perusmallista. Tässä skenaariossa luot erilliset määritykset kullekin sovellukselle, jonka virheenkorjaus halutaan korjata. Esikäynnistystehtäviä, kuten koontitehtävää, voidaan luoda tasks.json tiedostossa.
Oletetaan, että olet tekemässä koodausprojektia, joka sisältää useita konsolisovelluksia. Pääprojektikansio SpecialProjects on työtilakansio, jonka avaat Visual Studio Codessa koodia käsitellessäsi. Sinulla on kaksi kehittämääsi sovellusta, Project123 ja Project456. Voit korjata sovellukset RUN- JA DEBUG-näkymän avulla. Haluat valita virheenkorjauksen kohdesovelluksen käyttöliittymästä. Haluat myös, että kaikki tallennetut koodipäivitykset käännetään ennen virheenkorjauksen liittämistä sovellukseesi.
Voit saavuttaa tämän skenaarion vaatimukset päivittämällä launch.json ja tasks.json-tiedostoja.
Seuraavassa näyttökuvassa näkyy EXPLORER-näkymä ja kansiorakenne, joka sisältää Project123- ja Project456-projektit.
Huomaa, että .vscode launch.json- ja tasks.json-tiedostot sisältävä kansio liittyy työtilakansioon SpecialProjects, ei yksittäisiin projektikansioihin.
Seuraavassa esimerkissä näytetään, miten voit määrittää launch.json -tiedoston sisältämään sekä Project123- että Project456-sovellusten määritykset.
"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
}
]
Huomaa, että nimi-, preLaunchTask- ja ohjelmakentät on kaikki määritetty tiettyä sovellusta varten.
Nimimäärite määrittää valittavan käynnistysvaihtoehdon, joka näkyy RUN- JA DEBUG-näkymän käyttöliittymässä. Ohjelmamäärite määrittää sovelluksen polun. preLaunchTask-määritettä käytetään määrittämään tehtävän nimi, joka suoritetaan ennen virheenkorjauksen käynnistämistä. tasks.json-tiedosto sisältää nimetyt tehtävät ja tiedot, joita tarvitaan tehtävän suorittamiseen.
Seuraavassa esimerkissä näytetään, miten voit määrittää tasks.json tiedoston. Tässä tapauksessa nimetyt tehtävät määrittävät koontitoiminnot, jotka koskevat Project123- ja Project456-sovelluksia. Koontitehtävä varmistaa, että kaikki tallennetut muokkaukset käännetään ja esitetään vastaavassa virheenkorjaustiedostoon liitetyssä .dll.
"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"
}
]
Kun olet päivittänyt launch.json- ja tasks.json -tiedostoihin, RUN AND DEBUG -näkymä näyttää käynnistysvaihtoehdot Project123- tai Project456-sovelluksen virheenkorjaukseen. Seuraavassa näyttökuvassa näkyvät käynnistysmääritysten nimet, jotka näkyvät avattavassa Käynnistysmääritys-valikossa:
Kertaus
Tässä on kaksi tärkeää asiaa, jotka tulee muistaa tästä osiosta:
- Käynnistysmäärityksiä käytetään määrittämään määritteitä, kuten
name,type,request,preLaunchTask,programjaconsole. - Kehittäjät voivat muokata käynnistysmäärityksiä projektin vaatimusten mukaiseksi.