Я следовал заофициальные инструкциидля установки последней версии .NET SDK. Я выбрал метод "Package manager (Microsoft feed)". После выполнения этих инструкций и запуска dotnet --version
я получаю следующий вывод:
The command could not be loaded, possibly because:
* You intended to execute a .NET application:
The application '--version' does not exist.
* You intended to execute a .NET SDK command:
No .NET SDKs were found.
Download a .NET SDK:
https://aka.ms/dotnet/download
Learn about SDK resolution:
https://aka.ms/dotnet/sdk-not-found
Я прочитал обе эти веб-страницы, но они не дают мне решений. Одна возвращает меня к началу процесса установки .NET SDK. Другая рассказывает о том, как работают разрешения SDK, в основном при запуске приложений. Но это не помогает мне с инструментом CLI dotnet
.
Мне показалось интересным, что если я запустил dotnet --info
, то получил следующий вывод, который подтверждает, что SDK не установлен:
Host:
Version: 7.0.9
Architecture: x64
Commit: 8e9a17b221
.NET SDKs installed:
No SDKs were found.
.NET runtimes installed:
Microsoft.AspNetCore.App 7.0.9 [/usr/lib/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 7.0.9 [/usr/lib/dotnet/shared/Microsoft.NETCore.App]
Other architectures found:
None
Environment variables:
DOTNET_ROOT [/usr/lib/dotnet]
global.json file:
Not found
Learn more:
https://aka.ms/dotnet/info
Download .NET:
https://aka.ms/dotnet/download
Я думаю, это странно, потому что если я использую APT для проверки того, какие пакеты у меня установлены, я вижу вывод, который заставляет думать, что после выполнения официальных инструкций по установке у меня действительно была установлена одна версия SDK (7.0.109):
$ sudo apt list --installed | grep dotnet
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
dotnet-apphost-pack-7.0/jammy-updates,jammy-security,now 7.0.109-0ubuntu1~22.04.1 amd64 [installed,automatic]
dotnet-host-7.0/jammy-updates,jammy-security,now 7.0.109-0ubuntu1~22.04.1 amd64 [installed,automatic]
dotnet-hostfxr-7.0/jammy-updates,jammy-security,now 7.0.109-0ubuntu1~22.04.1 amd64 [installed,automatic]
dotnet-runtime-7.0/jammy-updates,jammy-security,now 7.0.109-0ubuntu1~22.04.1 amd64 [installed,automatic]
dotnet-sdk-7.0/jammy,now 7.0.306-1 amd64 [installed]
dotnet-targeting-pack-7.0/jammy-updates,jammy-security,now 7.0.109-0ubuntu1~22.04.1 amd64 [installed,automatic]
решение1
Моя проблема была в том, что я установил версию 7 .NET SDK через смесь пакетов Microsoft feed и пакетов Ubuntu feed. Это описано более подробно в ихДействия по устранению неполадок APTЯ использовал 22.04 через WSL, поэтому эта проблема была у меня.
Моим решением было следовать их рекомендуемому подходу для людей, которые не полагаются на канал Microsoft по какой-либо причине, а именно полностью удалить канал Microsoft из моей системы, а затем следовать их инструкциям по установке с использованием канала Ubuntu. После того, как я это сделал, мой dotnet --info
вывод показывает установленный SDK:
.NET SDK:
Version: 7.0.109
Commit: 3e9283a8e9
Runtime Environment:
OS Name: ubuntu
OS Version: 23.04
OS Platform: Linux
RID: ubuntu.23.04-x64
Base Path: /usr/lib/dotnet/sdk/7.0.109/
Host:
Version: 7.0.9
Architecture: x64
Commit: 8e9a17b221
.NET SDKs installed:
7.0.109 [/usr/lib/dotnet/sdk]
.NET runtimes installed:
Microsoft.AspNetCore.App 7.0.9 [/usr/lib/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 7.0.9 [/usr/lib/dotnet/shared/Microsoft.NETCore.App]
Other architectures found:
None
Environment variables:
DOTNET_ROOT [/usr/lib/dotnet]
global.json file:
Not found
Learn more:
https://aka.ms/dotnet/info
Download .NET:
https://aka.ms/dotnet/download
Поскольку я использовал 22.04, но хотел установить и использовать последнюю не предварительную версию SDK (на сегодняшний день это 7), мне пришлось сначала обновиться до 23.04. Я сделал это, следуя инструкциям, которые нашел на стороннем сайте, которые должны были запустить sudo do-release-upgrade
. Когда я это сделал, он сказал мне, что я уже использую последнюю версию, до которой я могу обновиться, если я не изменю файл конфигурации и не попробую снова. Поэтому я следовал инструкциям, затем попробовал обновиться снова, и затем я запустил 23.04, чтобы я мог выполнить вышеуказанные шаги для установки .NET SDK 7.