![Por que recebo o erro "O comando não pôde ser carregado" ao executar comandos `dotnet` após instalar o SDK do .NET?](https://rvso.com/image/1073522/Por%20que%20recebo%20o%20erro%20%22O%20comando%20n%C3%A3o%20p%C3%B4de%20ser%20carregado%22%20ao%20executar%20comandos%20%60dotnet%60%20ap%C3%B3s%20instalar%20o%20SDK%20do%20.NET%3F.png)
Eu segui oinstruções oficiaispara instalar a versão mais recente do SDK do .NET. Eu escolhi o método "Gerenciador de pacotes (feed da Microsoft)". Depois de concluir essas instruções e executar dotnet --version
, obtenho a seguinte saída:
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
Eu li essas duas páginas da web, mas elas não me fornecem soluções. Um deles me leva de volta ao início do processo de instalação do .NET SDK. O outro fala sobre como funcionam as resoluções do SDK, principalmente quando os aplicativos são executados. Mas isso não me ajuda com a ferramenta CLI dotnet
.
Achei interessante que, se eu executasse dotnet --info
, obtive a seguinte saída, que confirma que ele acha que nenhum SDK está instalado:
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
Acho isso estranho porque se eu usar o APT para verificar quais pacotes instalei, vejo uma saída que faz parecer que depois de seguir as instruções oficiais de instalação, eu realmente tinha uma versão do SDK instalada (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]
Responder1
Meu problema era que eu havia instalado a versão 7 do SDK do .NET por meio de uma combinação de pacotes de feed da Microsoft e pacotes de feed do Ubuntu. Isso é descrito com mais detalhes em seuEtapas de solução de problemas do APT. Eu estava usando o 22.04 via WSL, então esse problema se aplicava a mim.
Minha solução foi seguir a abordagem recomendada para pessoas que não dependem do feed da Microsoft por qualquer motivo, que era remover completamente o feed da Microsoft do meu sistema e seguir as instruções para instalar usando o feed do Ubuntu. Depois de fazer isso, minha dotnet --info
saída mostra o SDK instalado:
.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
Como eu estava usando o 22.04, mas queria instalar e usar a versão mais recente do SDK (que é 7 atualmente), tive que primeiro atualizar para o 23.04. Fiz isso seguindo as instruções que encontrei em um site de terceiros, que deveriam executar o sudo do-release-upgrade
. Quando fiz isso, ele me disse que eu já estava executando a versão mais recente para a qual poderia atualizar, a menos que eu ajustasse um arquivo de configuração e tentasse novamente. Então, segui as instruções, tentei a atualização novamente e estava executando o 23.04 para poder executar as etapas acima para instalar o .NET SDK 7.