NETSDK1045: El SDK de .NET actual no es compatible con "versión más reciente" como destino.
Este artículo se aplica a: ✔️ SDK de .NET Core 2.1.100 y versiones posteriores
Este error se produce cuando las herramientas de compilación no pueden encontrar la versión del SDK de .NET necesaria para compilar un proyecto. Esto suele deberse a un problema de instalación o configuración del SDK de .NET. El mensaje de error es similar al ejemplo siguiente:
NETSDK1045: El SDK de .NET actual no es compatible con "versión más reciente" como destino. Seleccione "versión anterior" u otra inferior como destino, o bien use una versión del SDK de .NET que admita "versión más reciente".
En las secciones siguientes se describen algunas de las posibles razones de este error. Compruebe cada una de ellas y vea cuál es la correspondiente. Tenga en cuenta que, al realizar cambios en el entorno o en los archivos de configuración, es posible que tenga que reiniciar ventanas de comandos, Visual Studio o la máquina para que los cambios surtan efecto.
Versión de SDK de .NET
Abra el archivo del proyecto (.csproj, .vbproj o .fsproj) y compruebe la plataforma de destino. Esta es la versión de la plataforma que la aplicación intenta usar.
<TargetFramework>netcoreapp3.0</TargetFramework>
Asegúrese de que la versión de .NET que aparece en la lista está instalada en la máquina. Puede enumerar las versiones instaladas con el comando siguiente (abra un Símbolo del sistema para desarrolladores y ejecútelo):
dotnet --list-sdks
Arquitectura x86 o x64
Cada versión del SDK de .NET está disponible en la arquitectura x86 y x64. Es posible que el proyecto intente encontrar el SDK de .NET para la arquitectura equivocada, o bien que no esté instalado el SDK de .NET para la arquitectura que necesita el proyecto. Busque en las carpetas de instalación la arquitectura que necesita. Por ejemplo, en Windows, la versión x86 del SDK de .NET se instala en C:\Archivos de programa (x86)\dotnet, y la versión x64, en C:\Archivos de programa\dotnet. Vea Cómo comprobar que .NET Core ya está instalado y elija el sistema operativo para averiguar cómo detectar lo que está instalado en la máquina.
Si la versión que necesita no está instalada, búsquela en la página Descargas de .NET.
Versión de Visual Studio
Es posible que el SDK de .NET se haya instalado con Visual Studio 2022, por lo que actualizar a una versión posterior de Visual Studio podría instalar un SDK de .NET posterior y resolver este error. Para más información, vea Actualizar Visual Studio.
Versión preliminar no habilitada
Si tiene instalada una versión preliminar de la versión del SDK de .NET solicitada, también debe establecer la opción para habilitar las versiones preliminares en Visual Studio. Vaya a Herramientas>Opciones>Entorno>Características en versión preliminar y asegúrese de que la opción Usar versiones preliminares del SDK de .NET Core está activada.
Versión de Visual Studio
Por ejemplo, en .NET Core 3.0 y versiones posteriores se necesita Visual Studio 2019. Actualice su versión a Visual Studio 2019, versión 16.3 o posterior para compilar el proyecto.
Variable de entorno PATH
Las herramientas de compilación usan la variable de entorno PATH para encontrar la versión correcta de las herramientas de compilación de .NET. Si la variable de entorno PATH contiene rutas de acceso directas a herramientas de compilación más antiguas, podría aparecer este mensaje de error. Asegúrese de que la única ruta de acceso a las herramientas de .NET en la variable de entorno PATH es a la carpeta dotnet de nivel superior, por ejemplo, C:\Archivos de programa\dotnet. Un ejemplo de una ruta de acceso incorrecta sería similar a C:\Archivos de programa\dotnet\2.1.0\sdks.
Variable de entorno MSBuildSDKPath
Compruebe la variable de entorno MSBuildSDKPath. MSBuild reconoce esta variable de entorno opcional y, si se establece, invalida el valor predeterminado. Es posible que esté establecida en una versión anterior específica del SDK de .NET. Si está establecida, intente eliminarla y vuelva a compilar el proyecto.
archivo global.json
Busque un archivo global.json en la carpeta raíz del proyecto y en la solución, y en la cadena de directorios hasta la raíz del volumen, ya que puede estar en cualquier lugar de la estructura de carpetas. Si contiene una versión del SDK, elimine el nodo sdk
y todos sus elementos secundarios, o bien actualícelo a la versión más reciente de .NET Core deseada.
{
"sdk": {
"version": "2.1.0"
}
}
El archivo global.json no es necesario, por lo que, si no contiene nada que no sea el nodo sdk
, puede eliminarlo por completo.
Archivo Directory.build.props
Directory.build.props es un archivo de MSBuild opcional que puede establecer propiedades globales. Busque estos archivos en la carpeta de la solución y en la cadena de directorios de la raíz del volumen, ya que pueden estar en cualquier parte de la estructura de carpetas. Busque elementos TargetFramework
o la configuración de MSBuildSDKPath
que puede invalidar la configuración deseada.