WSL или Windows Subsystem for Linux позволяет разработчикам запускать окружение GNU/Linux (и ряд приложений Linux) непосредственно на Windows без использования виртуальной машины. Что может быть полезно при создании и тестировании приложений для Linux без необходимости переключения между операционными системами.
Перед установкой следует учитывать, что текущая версия WSL поддерживается на Windows 10 версии 2004 и выше (Build 19041 и выше) и на Windows 11.
Для установки откроем оболочку PowerShell или командную строку от имени администратора и выполним в ней следующую команду
wsl --install
Эта команда подключает функци WSL и устанавливает дистрибутив Linux по умолчанию, коим является Ubuntu (дистрибутив по умолчанию можно изменить).
После установки и перезагрузки системы откроется консоль, где надо будет установать имя пользователя и его пароль:
Затем в терминале нажмем на стрелку вниз и в появившемся списке выберем "Ubuntu":
Для установки текущей версией .NET 8 вначале необходимо добавить репозиторий пакетов microsoft с помощью последовательного выполнения следующих команд
wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb rm packages-microsoft-prod.deb
Обратите внимание на циферки в первой команде - "22.04". В случае если используется другая версия Ubuntu, то вместо них указывается соответствующая версия.
Затем для установки 8-й версии .NET SDK выполним команды
sudo apt-get update sudo apt-get install -y dotnet-sdk-8.0
Для проверки установленных .NET SDK можно выполнить следующую команду
dotnet --list-sdks
Создадим первый проект. Для этого откроем консоль Ubuntu и сначала создадим каталог для проекта с помощью следующей команды.
mkdir dotnet
Затем перейдем к этой папке командой
cd dotnet
Затем для создания проекта выполним следующую команду:
dotnet new console
Далее можно использовать базовые команды Linux для управления и навигации по файлам и каталогам в проекте (и вообще в WSL). Например, с помощью команды ll
можно отобразить список файлов и каталогов в текущем каталоге. Если мы хотим открыть какой-нибудь файл в проекте и изменить его содержимое, мы можем использовать встроенные в Ubuntu
текстовые редакторы типа vim. Но можем также использовать редакторы из текущей системы Windows. Например, у меня установлен Visual Studio Code. И если я хочу открыть в VS Code файл
Program.cs
, то как и в случае в Windows достаточно ввести команду code Program.cs
Либо вовсе отрыть весь проект в VS Code командой code . (при нахождении в папке проекта)
Для запуска проекта, построения, конфигурации и т.д. можно использовать все те же команды .NET CLI, которые применяются на Windows и в полноценном Linux. Например, запустим проект командой
dotnet run
И поскольку мы все таки находимся в Windows, мы можем посмотреть содержимое проекта в стандартном проводнике Windows. Для этого выполним следующую команду:
explorer.exe .
В данном случае открывается текущая папка, поэтому передается точка. Также можно открыть напрямую в проводнике Windows: