Megosztás a következőn keresztül:


.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

  1. 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:

    WSL-indítási profil az indítási profilok listájában

  2. 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.

  3. 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á.

Több WSL-indítási profil található az indítási profilok listáján

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.

  1. Ha az alkalmazás fut, válassza a Hibakeresési>Csatolás a folyamathozlehetőséget.

  2. A kapcsolattípushozválassza Windows-alrendszer linuxos (WSL), majd válassza ki a Linux-disztribúciót a kapcsolati cél.

  3. Válassza a Csatoláslehetőséget.

    WSL-folyamat képernyőképe a Folyamat csatolása párbeszédpanelen.

    WSL-folyamat képernyőképe a Folyamat csatolása párbeszédpanelen.

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"
}