NETSDK1239 : le SDK .NET actuel est en fin de vie

Cet avertissement indique que le sdk .NET utilisé pour générer votre projet est en fin de vie (EOL) et ne reçoit plus les mises à jour de sécurité. Le message d’avertissement complet est similaire à l’exemple suivant :

NETSDK1239 : le SDK .NET actuel (<version>) est terminé à compter de <date>. Il ne recevra aucune autre mise à jour de sécurité : https://dotnet.microsoft.com/download

Pour résoudre l’avertissement, installez un sdk .NET pris en charge à partir de https://dotnet.microsoft.com/download et mettez à jour votre global.json (le cas échéant) pour sélectionner la nouvelle version. Pour connaître la chronologie de prise en charge actuelle, consultez .NET versions et prise en charge.

Cet avertissement est distinct de NETSDK1138, qui est déclenché lorsque le framework cible de votre projet n’est pas pris en charge. NETSDK1239 est déclenché lorsque le Kit de développement logiciel (SDK) qui exécute la build n’est pas pris en charge, quel que soit le framework que vous ciblez.

Fonctionnement de la vérification

La vérification est activée et s’exécute uniquement lorsque la propriété CheckSdkVulnerabilities MSBuild est définie sur true:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <CheckSdkVulnerabilities>true</CheckSdkVulnerabilities>
  </PropertyGroup>
</Project>

Vous pouvez également passer /p:CheckSdkVulnerabilities=true à une commande CLI .NET, telle que dotnet build.

Par défaut, l’interface de ligne de commande .NET actualise en arrière-plan un cache local des métadonnées des versions du SDK au maximum une fois toutes les 24 heures sous ~/.dotnet/sdk-vulnerability-cache/. Définissez DOTNET_SDK_VULNERABILITY_CHECK_INTERVAL_HOURS pour modifier l’intervalle d’actualisation. La vérification MSBuild lit uniquement ce cache ; il n’effectue pas d’appels réseau pendant la build.

Supprimer l’avertissement

Pour supprimer l’avertissement sans mettre à jour le Kit de développement logiciel (SDK) :

  • Ajouter NETSDK1239 à NoWarn:

    <NoWarn>$(NoWarn);NETSDK1239</NoWarn>
    
  • CheckSdkVulnerabilities Définissez false sur (valeur par défaut) pour désactiver NETSDK1238, NETSDK1239 et NETSDK1240.

  • Définissez la variable d’environnement DOTNET_SDK_VULNERABILITY_CHECK_DISABLE sur true.

Voir aussi