NETSDK1045 : le SDK .NET actuel ne prend pas en charge la « version plus récente » en tant que cible.
Cet article s’applique à : ✔️ SDK .NET Core 2.1.100 et versions ultérieures
Cette erreur se produit lorsque les outils de génération ne parviennent pas à trouver la version nécessaire du SDK .NET pour générer un projet. Cela est généralement dû à un problème d’installation ou de configuration du SDK .NET. Le message d’erreur complet est semblable à l’exemple suivant :
NETSDK1045 : le SDK .NET actuel ne prend pas en charge la « version plus récente » en tant que cible. Ciblez une « version antérieure » ou inférieure, ou utilisez une version du SDK .NET qui prend en charge la « version plus récente ».
Les sections suivantes décrivent certaines des raisons possibles de cette erreur. Vérifiez chacune d’entre elles et voyez celle qui s’applique à vous. N’oubliez pas que lorsque vous apportez des modifications à l’environnement ou aux fichiers de configuration, vous devrez peut-être redémarrer les fenêtres de commande, redémarrer Visual Studio ou redémarrer votre ordinateur, pour que vos modifications prennent effet.
Version du Kit de développement logiciel (SDK) .NET
Ouvrez le fichier projet (.csproj, .vbproj ou .fsproj) et vérifiez la version cible de .Net Framework. Il s’agit de la version du framework que votre application tente d’utiliser.
<TargetFramework>netcoreapp3.0</TargetFramework>
Vérifiez que la version de .NET répertoriée est installée sur l’ordinateur. Vous pouvez répertorier les versions installées à l’aide de la commande suivante (ouvrez une invite de commandes développeur et exécutez cette commande) :
dotnet --list-sdks
Architecture x86 ou x64
Chaque version du SDK .NET est disponible dans l’architecture x86 ou x64. Le projet peut essayer de trouver le SDK .NET pour l’architecture incorrecte, ou le SDK .NET pour l’architecture dont votre projet a besoin peut ne pas être installé. Vérifiez les dossiers d’installation de l’architecture dont vous avez besoin. Par exemple, sur Windows, la version x86 du SDK .NET est installée dans C:\Program Files (x86)\dotnet et la version x64 est installée dans C:\Program Files\dotnet. Consultez Comment vérifier que .NET est déjà installé et choisissez votre système d’exploitation pour savoir comment détecter ce qui est installé sur votre ordinateur.
Si la version dont vous avez besoin n’est pas installée, recherchez-la sur la page Téléchargements .NET.
Version de Visual Studio
Le Kit de développement logiciel (SDK) .NET a peut-être été installé avec Visual Studio 2022. Par conséquent, la mise à niveau vers une version ultérieure de Visual Studio peut installer un SDK .NET plus récent et résoudre cette erreur. Pour plus d’informations, voir Mettre à jour Visual Studio.
Préversion non activée
Si vous avez installé une préversion de la version demandée du SDK .NET, vous devez également définir l’option permettant d’activer les préversions dans Visual Studio. Accédez à Outils>Options>Environnement>Fonctionnalités d’évaluation, et assurez-vous que l’option Utiliser les préversions du SDK .NET Core est cochée.
Version Visual Studio
Par exemple, .NET Core 3.0 et versions ultérieures nécessitent Visual Studio 2019. Effectuez une mise à niveau vers Visual Studio 2019 version 16.3 ou ultérieure pour générer votre projet.
Variable d’environnement PATH
Les outils de génération utilisent la variable d’environnement PATH pour trouver la version appropriée des outils de génération .NET. Si la variable d’environnement PATH contient des chemins directs vers des outils de génération plus anciens, ce message d’erreur peut s’afficher. Vérifiez que le seul chemin d’accès aux outils .NET de la variable d’environnement PATH se trouve dans le dossier dotnet de niveau supérieur, par exemple, C:\Program Files\dotnet. À titre d’exemple, un chemin d’accès incorrect peut se présenter comme suit : C:\Program Files\dotnet\2.1.0\sdks.
Variable d’environnement MSBuildSDKPath
Vérifiez la variable d’environnement MSBuildSDKPath. Cette variable d’environnement facultative est reconnue par MSBuild et, si elle est définie, remplace la valeur par défaut. Elle peut être définie sur une version antérieure spécifique du SDK .NET. Si elle est définie, essayez de la supprimer et de regénérer votre projet.
fichier global.json
Recherchez un fichier global.json dans le dossier racine de votre projet et dans votre solution, ainsi que la chaîne de répertoires à la racine du volume, car elle peut se trouver n’importe où dans la structure de dossiers. S’il contient une version du SDK, supprimez le nœud sdk
et tous ses enfants ou mettez-le à jour vers la version .NET Core la plus récente souhaitée.
{
"sdk": {
"version": "2.1.0"
}
}
Le fichier global.json n’est pas obligatoire. Par conséquent, s’il ne contient rien d’autre que le nœud sdk
, vous pouvez supprimer l’intégralité du fichier.
Fichier Directory.build.props
Le fichier Directory.build.props est un fichier MSBuild facultatif qui peut définir des propriétés globales. Recherchez ces fichiers dans le dossier solution et jusqu’à la chaîne de répertoires à la racine du volume, car ils peuvent se trouver n’importe où dans la structure de dossiers. Recherchez les éléments TargetFramework
ou les paramètres de MSBuildSDKPath
susceptibles de remplacer les paramètres souhaités.