WSL w Windowsie i projekt .NET. Jak uniknąć wolnej pracy?

Radosław Krajewski • 1 listopada 2026
Ubuntu w WSL (Windows Subsystem for Linux) pozwala na uruchomienie środowiska terminala Linux w systemie Windows.

Spis treści

Masz projekt .NET, który działa na Windowsie, ale wymaga linuksowego narzędzia albo środowiska zgodnego z produkcją? WSL uruchamia dystrybucję Linuksa obok Windowsa, zwykle bez osobnej maszyny wirtualnej do konfigurowania, choć wybór systemu plików potrafi zmienić szybkość pracy bardziej niż sama dystrybucja.

WSL najlepiej działa, gdy narzędzia i pliki projektu są po tej samej stronie

  • Instalacja: w PowerShellu uruchom wsl --install, a potem wybierz dystrybucję.
  • Domyślny wybór: WSL 2 zapewnia pełne jądro Linuksa i zgodność z większą liczbą narzędzi.
  • Wydajność: projekty budowane linuksowymi narzędziami trzymaj w katalogu Linuksa, na przykład ~/projects.
  • Wyjątek: WSL 1 może pasować do pracy na plikach Windows, gdy linuksowe narzędzia muszą często je odczytywać.
  • Dla kontenerów: WSL zawiera obecnie własne narzędzie wslc, dostępne w WSL w wersji 2.9.3 lub nowszej.

Konfiguracja WSL2 dla rozwoju .NET na Windows. Ikona pingwina Tuxa wygląda z okna.

WSL 2 uruchamia prawdziwe jądro Linuksa w zarządzanej maszynie wirtualnej

Otwierasz Terminal, wpisujesz wsl i dostajesz powłokę Bash, ale pod spodem działa więcej niż emulator poleceń. WSL 2 korzysta z linuksowego jądra wewnątrz lekkiej maszyny wirtualnej zarządzanej przez Windows, więc może obsłużyć narzędzia wymagające systemowych funkcji Linuksa.

To wyjaśnia, dlaczego WSL 2 nadaje się do uruchamiania wielu linuksowych narzędzi, usług i aplikacji graficznych. Nie oznacza jednak, że otrzymujesz osobny komputer z pełną, niezależną konfiguracją sieci i sprzętu. Microsoft opisuje tę architekturę jako zarządzaną maszynę wirtualną, która startuje i integruje się z Windowsem bez ręcznego konfigurowania VM.

WSL 1 działa inaczej: tłumaczy wywołania systemowe Linuksa, zamiast uruchamiać własne jądro. W praktyce WSL 2 jest rozsądnym wyborem dla nowych projektów, a do WSL 1 wraca się w określonych przypadkach, zwłaszcza gdy przepływ pracy zależy od częstego dostępu do plików Windows.

Instalacja zajmuje jedno polecenie, a dystrybucję możesz wybrać później

Jeśli zaczynasz od zera, otwórz PowerShell i wpisz wsl --install. Domyślnie instalowany jest Ubuntu; po ponownym uruchomieniu systemu uruchom dystrybucję z menu Start i utwórz linuksową nazwę użytkownika oraz hasło.

Gdy wolisz inną bazę, najpierw sprawdź dostępne opcje przez wsl --list --online, a potem wskaż nazwę w poleceniu, na przykład wsl --install -d Debian. Ubuntu ma dużo poradników i pakietów dla typowych narzędzi deweloperskich, Debian może odpowiadać osobom szukającym oszczędniejszej instalacji. Dystrybucje mogą różnić się wersjami pakietów, więc dopasuj je do środowiska docelowego.

Po instalacji sprawdź stan poleceniem wsl --list --verbose. Zobaczysz tam dystrybucje i używaną wersję WSL; jeśli trzeba, ustaw domyślną komendą wsl --set-default-version 2. Wymagania dla instalacji WSL poleceniem wsl --install obejmują Windows 11 lub Windows 10 w wersji 2004 i nowszej, z kompilacją 19041 lub nowszą.

Projekt .NET trzymaj tam, gdzie uruchamiasz jego narzędzia

Najczęstsza pułapka wychodzi dopiero przy dotnet restore, instalacji zależności albo kompilacji dużego repozytorium. Gdy projekt leży na dysku Windows pod ścieżką widoczną w Linuksie jako /mnt/c/..., operacje plikowe przekraczają granicę między systemami i mogą zwolnić.

Microsoft Learn w dokumencie „Working across file systems” zaleca przechowywanie plików w systemie, którego narzędzia ich używają. Przy pracy w WSL trzymaj repozytorium na przykład w ~/projects/aplikacja, a do edycji użyj Visual Studio Code z rozszerzeniem WSL. Edytor działa w Windowsie, ale terminal, rozszerzenia i polecenia projektu mogą pracować po stronie Linuksa.

SytuacjaCo się dziejeCo zrobić
Budujesz w WSL, a projekt leży w /mnt/cOperacje na wielu plikach przechodzą przez granicę systemów.Przenieś lub sklonuj repozytorium do katalogu domowego Linuksa.
Budujesz natywnymi narzędziami WindowsProjekt w katalogu Windows jest dostępny bez tej granicy dla procesu Windows.Trzymaj repozytorium na dysku Windows.
Potrzebujesz otworzyć plik linuksowy w EksploratorzeWindows może uzyskać dostęp do katalogów dystrybucji przez ścieżkę sieciową WSL.Użyj \\wsl.localhost\Ubuntu\home\... do zwykłego dostępu, nie jako lokalizacji dla intensywnych operacji Windows.

Ta sama zasada dotyczy Git, Node.js, Pythona i narzędzi kontenerowych: nie mieszaj lokalizacji plików i środowiska wykonawczego bez powodu. Uważam, że właśnie ten wybór oszczędza najwięcej niepotrzebnego diagnozowania „wolnego WSL”.

Wybierz WSL 1 tylko wtedy, gdy przepływ pracy tego wymaga

Dwie wersje WSL rozwiązują podobny problem, ale różnią się mechanizmem działania. Dokument Microsoft Learn „Comparing WSL Versions” wskazuje pełną zgodność wywołań systemowych i obsługę systemd po stronie WSL 2, a lepszą wydajność pracy między systemami plików po stronie WSL 1.

Prosta reguła wyboru: jeśli większość pracy wykonujesz linuksowymi narzędziami i możesz trzymać repozytorium w Linuksie, wybierz WSL 2. Jeśli pliki muszą pozostać na dysku Windows i narzędzia Linuksa często wykonują na nich operacje, sprawdź WSL 1 dla tej dystrybucji. Wersję można sprawdzić i zmienić poleceniami wsl --list --verbose oraz wsl --set-version Ubuntu 1.

Na komputerze z Windows 11 w wersji 22H2 lub nowszej WSL 2 obsługuje też tryb sieci lustrzanej, który można ustawić w pliku .wslconfig. Przy problemach z dostępem do lokalnej usługi albo VPN sprawdź najpierw tryb sieci, zamiast zakładać, że aplikacja w Linuksie zawsze widzi sieć dokładnie tak jak proces Windows.

Kontenery i aplikacje graficzne rozszerzają WSL, ale nie usuwają granic

WSL sprawdza się przy pracy z usługami linuksowymi, narzędziami CLI i testowaniem aplikacji w środowisku zbliżonym do serwera. Aplikację Windows, taką jak Visual Studio Code, możesz połączyć z dystrybucją przez WSL; uruchomione w niej usługi często są dostępne z poziomu Windows przez localhost.

W aktualnej linii WSL dostępne jest również wslc, wbudowane narzędzie do tworzenia i uruchamiania kontenerów Linuksa. Wymaga WSL w wersji 2.9.3 lub nowszej; sprawdź wersję poleceniem wsl --version, a w razie potrzeby zaktualizuj ją przez wsl --update. Jeśli projekt zespołu opiera się na Docker Desktop lub konkretnym zestawie narzędzi, trzymaj się zgodnego z nim środowiska zamiast zmieniać je wyłącznie dlatego, że istnieje nowa opcja.

Przy pracy z AI WSL może też udostępnić linuksowe narzędzia do obliczeń GPU, ale wymaga to zgodnego sprzętu i sterownika Windows obsługującego tę ścieżkę. Dla typowego projektu .NET zacząłbym od dystrybucji, właściwego położenia repozytorium i integracji z edytorem; dodatkowe funkcje mają sens dopiero wtedy, gdy projekt ich potrzebuje.

Najmniej problemów daje jeden system plików na projekt

Gdy kompilacja jest wolna, sprawdź najpierw, czy kod leży w /mnt/c, czy w linuksowym katalogu domowym. Gdy aplikacja nie widzi usługi, przyjrzyj się trybowi sieci i temu, po której stronie działa proces. WSL daje wygodny most między Windowsem a Linuksem, ale spokojna praca zaczyna się od decyzji, która strona będzie głównym środowiskiem danego projektu.

FAQ - Najczęstsze pytania

W PowerShellu uruchom wsl --install, aby zainstalować domyślne Ubuntu. Dostępne dystrybucje sprawdzisz poleceniem wsl --list --online, a wybraną, na przykład Debian, zainstalujesz przez wsl --install -d Debian. Instalacja poleceniem wsl --install wymaga Windows 11 albo Windows 10 w wersji 2004 lub nowszej, z kompilacją 19041 lub nowszą.

Umieść repozytorium w linuksowym systemie plików, na przykład w ~/projects/aplikacja. Budowanie projektu przechowywanego pod /mnt/c/... może zwolnić, ponieważ operacje na plikach przekraczają granicę między Windowsem a Linuksem. Do edycji możesz użyć Visual Studio Code z rozszerzeniem WSL.

WSL 2 jest dobrym wyborem dla większości nowych projektów, bo uruchamia pełne jądro Linuksa i zapewnia szerszą zgodność narzędzi. WSL 1 może sprawdzić się, gdy linuksowe narzędzia często wykonują operacje na plikach przechowywanych na dysku Windows. Wersję dystrybucji sprawdzisz przez wsl --list --verbose, a zmienisz poleceniem wsl --set-version Ubuntu 1.

Otwórz ścieżkę sieciową w rodzaju \\wsl.localhost\Ubuntu\home\.... Nadaje się do zwykłego dostępu do plików, ale nie jest zalecana jako lokalizacja dla intensywnych operacji wykonywanych przez narzędzia Windows.

Narzędzie wslc jest dostępne w WSL w wersji 2.9.3 lub nowszej. Sprawdź wersję poleceniem wsl --version, a w razie potrzeby zaktualizuj WSL przez wsl --update. Jeśli projekt korzysta z Docker Desktop lub ustalonego zestawu narzędzi, wybierz środowisko zgodne z tym przepływem pracy.

Oceń artykuł

Ocena: 0.00 Liczba głosów: 0

Tagi

wsl
linux
.net
kontenery
Autor Radosław Krajewski
Radosław Krajewski
Nazywam się Radosław Krajewski i od 6 lat zgłębiam tajniki programowania .NET, chmury Azure oraz sztucznej inteligencji. Moja przygoda z tymi technologiami zaczęła się od fascynacji tym, jak złożone problemy można rozwiązywać za pomocą kodu i innowacyjnych narzędzi. Staram się przekazywać tę wiedzę w sposób zrozumiały, dzieląc się swoimi doświadczeniami i spostrzeżeniami na kursdotnet.pl. W moich artykułach skupiam się na praktycznych aspektach, porównuję różne rozwiązania i analizuję najnowsze trendy, aby dostarczyć Wam rzetelne i aktualne informacje, które pomogą Wam rozwijać się w tej dynamicznie zmieniającej się dziedzinie.

Udostępnij artykuł

Napisz komentarz

Komentarze

2
SA

SabrinaBlogs

Bardzo dziękuję za ten artykuł. Cieszę się, że poruszyliście Państwo temat WSL, bo to naprawdę przydatne narzędzie dla każdego, kto pracuje z .NET-em i Linuksem. Szczególnie ta uwaga o trzymaniu projektów w katalogu Linuksa jest bardzo cenna, bo sama się o tym przekonałam, że inaczej bywa z wydajnością. Pozdrawiam serdecznie! 😊

Radosław Krajewski
Radosław KrajewskiAutor

Cieszę się, że pomogłem! Dzięki za miłe słowa. 😊

RO

Roman_60

Interesuje mnie, czy w przypadku WSL 2 i projektów .NET, gdzie część zależności jest w kontenerach Docker, a część w systemie Windows (np. baza danych na Windows), nadal zaleca się trzymanie plików projektu w katalogu Linuksa? Czy w takiej konfiguracji nie pojawią się problemy z wydajnością przy dostępie do zasobów Windows?

Radosław Krajewski
Radosław KrajewskiAutor

Cześć! To świetne pytanie, które często się pojawia. W takiej konfiguracji nadal zalecałbym trzymanie plików projektu w katalogu Linuksa ze względu na wydajność. Dostęp do zasobów Windows z WSL 2 jest wolniejszy niż dostęp do zasobów Linuksa.