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.

Visual Studio para Mac

VS para Mac admite dotnet msbuild y MSBuild en Mono, pero el SDK de .NET se cambia a una versión anterior cuando se usa MSBuild en Mono, lo que puede generar el error NETSDK1045.

Abra la ventana Propiedades de la solución (Ctrl+clic en la solución en la ventana Solución y seleccione Propiedades), seleccione Compilar - General y desactive la opción Compilar con MSBuild en Mono. La opción Compilar con MSBuild en Mono estará activada si hay proyectos clásicos en la solución, lo que puede causar problemas, ya que Mono no admite los SDK de .NET posteriores.

Para información sobre qué versiones de Visual Studio para Mac 2022 son compatibles con qué versiones de .NET, consulte Versiones admitidas de .NET.

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 cadena de directorios de la raíz del volumen, ya que puede estar en cualquier parte 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.

Vea también