NETSDK1045: l'SDK .NET corrente non supporta la "versione più recente" come destinazione.
Questo articolo si applica a: ✔️ SDK .NET Core 2.1.100 e versioni successive
Questo errore si verifica quando gli strumenti di compilazione non riescono a trovare la versione dell’SDK .NET necessaria per compilare un progetto. Ciò è in genere dovuto a un problema di installazione o configurazione dell’SDK .NET. Il messaggio di errore completo è simile all'esempio seguente:
NETSDK1045: l'SDK .NET corrente non supporta la "versione più recente" come destinazione. O si punta alla "versione precedente" o inferiore, oppure si usa una versione dell’SDK .NET che supporta la "versione più recente".
Le sezioni seguenti descrivono alcuni dei possibili motivi di questo errore. Controllali tutti per vedere quale si applica al tuo caso. Tieni presente che quando si apportano modifiche all'ambiente o ai file di configurazione, potrebbe essere necessario riavviare le finestre dei comandi, riavviare Visual Studio o riavviare il computer per rendere effettive le modifiche.
Versione di .NET SDK
Apri il file di progetto (.csproj, .vbproj o .fsproj) e controlla il framework di destinazione. Questa è la versione del framework che l'app sta tentando di usare.
<TargetFramework>netcoreapp3.0</TargetFramework>
Assicurati che la versione di .NET elencata sia installata nel computer. Puoi ottenere un elenco delle versioni installate usando il comando seguente (apri un prompt dei comandi per gli sviluppatori ed esegui questo comando):
dotnet --list-sdks
x86 or x64 architecture
Ogni versione dell’SDK .NET è disponibile sia nell'architettura x86 che in quella x64. Il progetto potrebbe tentare di trovare l’SDK .NET per l'architettura errata, oppure l’SDK .NET per l'architettura necessaria al progetto potrebbe non essere installato. Controlla le cartelle di installazione dell'architettura necessaria. Ad esempio, in Windows, la versione x86 dell’SDK .NET viene installata in C:\Programmi (x86)\dotnet e la versione x64 è installata in C:\Programmi\dotnet. Vedi Come verificare che .NET sia già installato e scegli il tuo sistema operativo per scoprire come rilevare gli elementi installati nel computer.
Se la versione necessaria non è installata, trova quella necessaria nella pagina Download di .NET.
Versione di Visual Studio
.NET SDK potrebbe essere stato installato con Visual Studio 2022, quindi l'aggiornamento a una versione successiva di Visual Studio potrebbe installare un SDK .NET successivo e risolvere questo errore. Per altre informazioni vedere Aggiornare Visual Studio.
Anteprima non abilitata
Se è installata un'anteprima della versione richiesta dell’SDK .NET, è necessario impostare anche l'opzione per abilitare le anteprime in Visual Studio. Accedi a Strumenti>Opzioni>Ambiente>Funzionalità di anteprima e assicurati che l'opzione Usa anteprime di .NET Core SDK sia selezionata.
Versione di Visual Studio
Ad esempio, .NET Core 3.0 e versioni successive richiedono Visual Studio 2019. Esegui l'aggiornamento a Visual Studio 2019 versione 16.3 o successiva per compilare il progetto.
Variabile di ambiente PATH
Gli strumenti di compilazione usano la variabile di ambiente PATH per trovare la versione corretta degli strumenti di compilazione .NET. Se la variabile di ambiente PATH contiene percorsi diretti agli strumenti di compilazione meno recenti, potrebbe comparire questo messaggio di errore. Assicurati che l'unico percorso degli strumenti .NET nella variabile di ambiente PATH sia alla cartella dotnet di primo livello, ad esempio C:\Programmi\dotnet. Un esempio di PATH non corretto è C:\Programmi\dotnet\2.1.0\sdks.
Variabile di ambiente MSBuildSDKPath
Controlla la variabile di ambiente MSBuildSDKPath. Questa variabile di ambiente facoltativa viene riconosciuta da MSBuild e, se impostata, sostituisce il valore predefinito. Potrebbe essere impostata su una versione precedente specifica di .NET SDK. Se è impostata, prova a eliminarla e ricompila il progetto.
File global.json
Verificare la presenza di un file global.json nella cartella radice del progetto e nella soluzione e nella catena di directory fino alla radice del volume, in quanto può trovarsi in qualsiasi punto della struttura di cartelle. Se contiene una versione dell'SDK, elimina il nodo sdk
e tutti i relativi elementi figlio oppure aggiornalo alla versione più recente di .NET Core desiderata.
{
"sdk": {
"version": "2.1.0"
}
}
Il file global.json non è necessario, quindi se non contiene altro che il nodo sdk
, puoi eliminare l'intero file.
File Directory.build.props
Il file Directory.build.props è un file MSBuild facoltativo in grado di impostare le proprietà globali. Verifica la presenza di questi file nella cartella della soluzione e nella catena di directory fino alla radice del volume, poiché possono trovarsi in qualsiasi punto della struttura delle cartelle. Cerca elementi TargetFramework
o impostazioni di MSBuildSDKPath
che potrebbero sostituire le impostazioni desiderate.