.NET-alkalmazások hibakeresése a WSL-ben a Visual Studióval
A .NET Core- és .NET 5+-alkalmazások linuxos futtatása és hibakeresése egyszerűen elvégezhető anélkül, hogy elhagyná a Visual Studiót a Windows Subsystem for Linux (WSL) használatával. Platformfüggetlen fejlesztőként ezt a módszert egyszerű módszerként használhatja a célkörnyezetek további tesztelésére.
A Linux rendszert célzó Windows .NET-felhasználók számára a WSL az ideális egyensúlyt képviseli a valóság és a termelékenység között. A Visual Studióban már hibakeresést végezhet távoli Linux-környezetben a távoli hibakeresővagy a tárolókkal a Container Toolshasználatával. Ha a termelési realizmus a legfontosabb szempont, használja az egyik ilyen lehetőséget. Ha egy egyszerű és gyors belső hurok fontosabb, a WSL nagyszerű lehetőség.
Nem kell egyetlen módszert választania! Ugyanabban a projektben rendelkezhet a Docker és a WSL indítási profiljával, és kiválaszthatja, hogy melyik megfelelő egy adott futtatáshoz. Az alkalmazás üzembe helyezése után bármikor csatlakoztathatja a távoli hibakeresőt, ha probléma merül fel. A WSL-ben futó Linux Docker-tároló hibakereséséhez lásd: Csatolás docker-tárolón futó folyamathoz.
Jegyzet
A Visual Studio 2019 16.11 Preview 3 verziójától kezdve a WSL 2 hibakeresési célhelye WSL-re lett átnevezve.
Előfeltételek
Visual Studio 2019 v16.9 Preview 1 vagy újabb verziók a .NET hibakereséshez szükséges WSL opcionális összetevővel.
A WSL-összetevő kereséséhez válassza az Eszközök>Szolgáltatások és eszközök lekéréselehetőséget. A Visual Studio Installerben győződjön meg arról, hogy az összetevő telepítve van, válassza az Egyes összetevők fület, és keresési kifejezésként írja be a WSL nevet.
A Visual Studio egyes verzióiban alapértelmezés szerint az opcionális összetevő szerepel néhány .NET-számítási feladatban.
Telepítse WSL-.
Telepítse a választott terjesztési.
Hibakeresés indítása a WSL használatával
Miután telepítette a szükséges összetevőket, nyisson meg egy ASP.NET Core-webalkalmazást vagy .NET Core-konzolalkalmazást a Visual Studióban. Ekkor megjelenik egy WSL nevű új indítási profil:
Válassza ki ezt a profilt, hogy hozzáadja a launchSettings.json-höz.
A fájl néhány fő attribútuma az alábbi példában látható.
Jegyzet
A Visual Studio 2022 Preview 3-tól kezdve a Launch Profile parancsneve WSL2-ről WSL-re változott.
"WSL": { "commandName": "WSL", "launchBrowser": true, "launchUrl": "https://localhost:5001", "environmentVariables": { "ASPNETCORE_URLS": "https://localhost:5001;http://localhost:5000", "ASPNETCORE_ENVIRONMENT": "Development" }, "distributionName": "" }
"WSL": { "commandName": "WSL2", "launchBrowser": true, "launchUrl": "https://localhost:5001", "environmentVariables": { "ASPNETCORE_URLS": "https://localhost:5001;http://localhost:5000", "ASPNETCORE_ENVIRONMENT": "Development" }, "distributionName": "" }
Az új profil kiválasztása után a bővítmény ellenőrzi, hogy a WSL-disztribúció a .NET-alkalmazások futtatására van-e konfigurálva, és segít a hiányzó függőségek telepítésében. Miután telepítette ezeket a függőségeket, készen áll a WSL hibakeresésére.
Kezdje el a hibakeresést a szokásos módon, és az alkalmazás az alapértelmezett WSL-disztribúcióban fog futni.
A linuxos futtatás ellenőrzésének egyszerű módja a
Environment.OSVersion
értékének ellenőrzése.
Jegyzet
Csak az Ubuntu és a Debian lett tesztelve, és támogatottak. A .NET által támogatott egyéb disztribúcióknak működnie kell, de manuálisan kell telepíteni a .NET futtatókörnyezeti és Curl.
Adott disztribúció kiválasztása
Alapértelmezés szerint a WSL 2 indítási profilja az alapértelmezett eloszlást használja a wsl.exe. Ha azt szeretné, hogy az indítási profil egy adott disztribúcióra irányuljon, az alapértelmezetttől függetlenül módosíthatja az indítási profilt. Ha például egy webalkalmazást hibakeres, és az Ubuntu 20.04-en szeretné tesztelni, az indítóprofil valahogy így nézne ki:
"WSL": {
"commandName": "WSL",
"launchBrowser": true,
"launchUrl": "https://localhost:5001",
"environmentVariables": {
"ASPNETCORE_URLS": "https://localhost:5001;http://localhost:5000",
"ASPNETCORE_ENVIRONMENT": "Development"
},
"distributionName": "Ubuntu-20.04"
}
"WSL": {
"commandName": "WSL2",
"launchBrowser": true,
"launchUrl": "https://localhost:5001",
"environmentVariables": {
"ASPNETCORE_URLS": "https://localhost:5001;http://localhost:5000",
"ASPNETCORE_ENVIRONMENT": "Development"
},
"distributionName": "Ubuntu-20.04"
}
Több disztribúció megcélzása
Egy lépéssel tovább haladva, ha olyan alkalmazáson dolgozik, amelyet több disztribúcióban kell futtatnia, és gyorsan szeretné tesztelni őket, több indítási profillal is rendelkezhet. Ha például a konzolalkalmazást Debian, Ubuntu 18.04 és Ubuntu 20.04 rendszeren kell tesztelnie, a következő indítási profilokat használhatja:
"WSL : Debian": {
"commandName": "WSL",
"distributionName": "Debian"
},
"WSL : Ubuntu 18.04": {
"commandName": "WSL",
"distributionName": "Ubuntu-18.04"
},
"WSL : Ubuntu 20.04": {
"commandName": "WSL",
"distributionName": "Ubuntu-20.04"
}
"WSL : Debian": {
"commandName": "WSL2",
"distributionName": "Debian"
},
"WSL : Ubuntu 18.04": {
"commandName": "WSL2",
"distributionName": "Ubuntu-18.04"
},
"WSL : Ubuntu 20.04": {
"commandName": "WSL2",
"distributionName": "Ubuntu-20.04"
}
Ezekkel az indítási profilokkal egyszerűen válthat oda-vissza a céleloszlások között anélkül, hogy a Visual Studio kényelmét elhagyná.
Csatlakozz egy futó WSL-folyamathoz
Az F5 használatával végzett alkalmazásindítási hibakeresés mellett hibakeresést is végezhet, ha a csatolás funkcióval csatlakozik egy futó WSL-folyamathoz.
Ha az alkalmazás fut, válassza a Hibakeresési>Csatolás a folyamathozlehetőséget.
A kapcsolattípushozválassza Windows-alrendszer linuxos (WSL), majd válassza ki a Linux-disztribúciót a kapcsolati cél.
Válassza a Csatoláslehetőséget.
WSL-beállítások az indítási profilban
Az alábbi táblázat az indítási profilban támogatott beállításokat mutatja be.
Név | Alapértelmezett | Cél | Támogatja a tokeneket? |
---|---|---|---|
executablePath | dotnet | A futtatandó végrehajtható fájl | Igen |
commandLineArgs | A WSL-környezethez hozzárendelt MSBuild tulajdonság TargetPath értéke | A végrehajthatópathnak átadott parancssori argumentumok | Igen |
workingDirectory | Konzolalkalmazások esetén: {OutDir} Webalkalmazásokhoz: {ProjectDir} |
A munkakönyvtár, amelyben a hibakeresést el kell kezdeni | Igen |
környezeti változók | A hibakeresési folyamathoz beállított környezeti változók kulcsértékpárjai. | Igen | |
setupScriptPath | A hibakeresés előtt futtatandó szkript. Olyan szkriptek futtatásához hasznos, mint a ~/.bash_profile. | Igen | |
elosztásNeve | A használni kívánt WSL-eloszlás neve. | Nem | |
böngészőindítás | téves | Indítsuk-e el a böngészőt vagy sem? | Nem |
launchUrl | Az indításhoz szükséges URL-cím, ha a launchBrowser igaz | Nem |
Támogatott tokenek:
{ProjectDir} – A projektkönyvtár elérési útja
{OutDir} – Az MSBuild tulajdonság értéke OutDir
Jegyzet
Az összes elérési út a WSL-hez van adva, nem a Windowshoz.
Parancssori argumentum megadása
A commandLineArgs
beállítással parancssori argumentumot adhat át a WSL-nek az indítási profilban.
Az alábbi példában két argumentumot ad át egy ConsoleApp nevű DLL-projektnek.
"WSL": {
"commandName": "WSL",
"commandLineArgs": "\"{OutDir}/ConsoleApp.dll\" arg1 arg2"
}