¿Por qué aparece el error "No se pudo cargar el comando" cuando ejecuto los comandos `dotnet` después de instalar el SDK de .NET?

¿Por qué aparece el error "No se pudo cargar el comando" cuando ejecuto los comandos `dotnet` después de instalar el SDK de .NET?

Seguí elinstrucciones oficialespara instalar la última versión del SDK de .NET. Elegí el método "Administrador de paquetes (canal de Microsoft)". Después de completar estas instrucciones y ejecutar dotnet --version, obtengo el siguiente resultado:

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

Leí ambas páginas web, pero no me brindan soluciones. Esto me lleva de regreso al comienzo del proceso para instalar el SDK de .NET. El otro habla sobre cómo funcionan las resoluciones del SDK, principalmente cuando se ejecutan aplicaciones. Pero esto no me ayuda con la herramienta CLI dotnet.

Me pareció interesante que si ejecutaba dotnet --info, obtenía el siguiente resultado, que confirma que cree que no hay ningún SDK 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

Creo que esto es extraño porque si uso APT para verificar qué paquetes he instalado, veo un resultado que hace que parezca que después de seguir las instrucciones de instalación oficiales, efectivamente tenía instalada una versión del 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]

Respuesta1

Mi problema fue que había instalado la versión 7 del SDK de .NET a través de una combinación de paquetes de fuentes de Microsoft y paquetes de fuentes de Ubuntu. Esto se describe con más detalle en suPasos para la solución de problemas de APT. Estaba usando 22.04 a través de WSL, por lo que este problema se aplicó a mí.

Mi solución fue seguir el enfoque recomendado para las personas que no dependen de la fuente de Microsoft por ningún motivo, que era eliminar completamente la fuente de Microsoft de mi sistema y luego seguir sus instrucciones para instalar usando la fuente de Ubuntu. Después de hacer esto, mi dotnet --infosalida muestra el 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

Debido a que estaba usando 22.04 pero quería instalar y usar la última versión no preliminar del SDK (que es 7 a partir de hoy), primero tuve que actualizar a 23.04. Hice esto siguiendo las instrucciones que encontré en un sitio web de terceros, que debían ejecutar sudo do-release-upgrade. Cuando hice esto, me dijo que ya estaba ejecutando la última versión a la que podía actualizar, a menos que modificara un archivo de configuración y lo intentara nuevamente. Así que seguí las instrucciones, luego intenté la actualización nuevamente y luego ejecuté 23.04 para poder seguir los pasos anteriores para instalar .NET SDK 7.

información relacionada