Глиф Учебники

«dotnet» не является внутренней или внешней командой

Справочник · C# · 2 минуты чтения

Сообщение значит, что терминал не нашёл программу dotnet. В командной строке Windows оно выглядит так: "dotnet" не является внутренней или внешней командой, исполняемой программой или пакетным файлом, в PowerShell — Имя "dotnet" не распознано как имя командлета... (The term 'dotnet' is not recognized), в Linux — dotnet: command not found.

Сначала — простое

Проверьте по порядку; чаще всего хватает первого или второго шага.

  1. Убедитесь, что .NET SDK установлен

    Если ставили только Visual Studio Code или скачали Runtime вместо SDK, команды dotnet может не быть вовсе. Поставьте SDK — справка Как установить .NET SDK.

    После установки в новом окне терминала dotnet --version печатает номер версии — всё готово.

    Не помогло — дальше: «Откройте окно терминала заново»

  2. Откройте окно терминала заново

    Установщик дописывает папку dotnet в переменную PATH — список папок, где система ищет программы. Окна терминала, открытые до установки, этого не знают. Закройте все окна терминала (и Visual Studio Code, если терминал в нём) и откройте снова. Иногда помогает только выход из системы или перезагрузка.

    В новом окне dotnet --version печатает номер версии — всё готово.

Если не помогло — проверьте PATH

Дальше всё зависит от системы.

Windowsнайти dotnet и добавить в PATH

Где лежит dotnet

В Windows SDK ставится в C:\Program Files\dotnet\. Проверьте, есть ли там dotnet.exe, и видит ли его система. В командной строке:

Командная строка
where dotnet

В PowerShell — where.exe dotnet или Get-Command dotnet (просто where в PowerShell — другая команда). Если файл на месте, но where его не находит, папки нет в PATH.

Добавьте папку в PATH

  1. Откройте «Пуск» и наберите «переменные среды».
  2. Выберите «Изменение системных переменных среды» и нажмите кнопку «Переменные среды».
  3. В списке «Системные переменные» выберите Path → «Изменить» → «Создать» и впишите C:\Program Files\dotnet\.
  4. Сохраните и откройте новый терминал.

Не удаляйте и не меняйте другие строки в Path: от них зависят остальные программы. Нужно только добавить одну новую строку.

Если в Path есть и C:\Program Files (x86)\dotnet\, и C:\Program Files\dotnet\, первой должна идти папка без (x86). Иначе запускается 32-разрядный dotnet, который не видит обычный 64-разрядный SDK, и команды пишут, что SDK не найден.

Дальше: «Команда есть, но SDK не найден»

Linuxдописать PATH в ~/.bashrc

Если SDK поставлен из пакетов (sudo apt install dotnet-sdk-10.0), команда сразу доступна. Если ставили скриптом dotnet-install.sh в домашнюю папку, допишите в конец файла ~/.bashrc:

Bash
export DOTNET_ROOT=$HOME/.dotnet
export PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools

и откройте новый терминал (или выполните source ~/.bashrc).

Команда есть, но SDK не найден

dotnet --version или dotnet new пишут No .NET SDKs were found — значит, установлена только среда выполнения (Runtime). Поставьте именно SDK и проверьте список: dotnet --list-sdks.