NETSDK1239: O .NET SDK atual chegou ao fim da vida útil

Este aviso indica que o SDK .NET usado para construir o seu projeto está em fim de vida (EOL) e já não recebe atualizações de segurança. A mensagem de aviso completa é semelhante ao seguinte exemplo:

NETSDK1239: O SDK atual de .NET (<versão>) está em fim de vida a partir de <data>. Não receberá mais atualizações de segurança: https://dotnet.microsoft.com/download

Para resolver o aviso, instale um SDK de .NET suportado a partir de https://dotnet.microsoft.com/download e atualize o seu global.json (se estiver presente) para selecionar a nova versão. Para o cronograma atual de suporte, veja .NET lançamentos e suporte.

Este aviso é distinto do NETSDK1138, que é levantado quando a estrutura alvo do seu projeto está fora de suporte. NETSDK1239 é ativado quando o SDK que executa a build fica fora de suporte, independentemente do framework que pretendas.

Como funciona a verificação

A verificação é opt-in e só é executada quando a propriedade CheckSdkVulnerabilities MSBuild está definida para true:

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

Também pode passar /p:CheckSdkVulnerabilities=true para um comando .NET CLI, como dotnet build.

Por defeito, a CLI do .NET atualiza, em segundo plano, uma cache local de metadados de lançamento de versões do SDK, no máximo, uma vez a cada 24 horas em ~/.dotnet/sdk-vulnerability-cache/. Definir DOTNET_SDK_VULNERABILITY_CHECK_INTERVAL_HOURS para alterar o intervalo de atualização. A verificação MSBuild lê apenas essa cache; Não faz chamadas de rede durante a construção.

Suprimir o aviso

Para suprimir o aviso sem atualizar o SDK:

  • Adicionar NETSDK1239 a:NoWarn

    <NoWarn>$(NoWarn);NETSDK1239</NoWarn>
    
  • Defina CheckSdkVulnerabilities como false (predefinido) para desativar NETSDK1238, NETSDK1239 e NETSDK1240.

  • Defina a DOTNET_SDK_VULNERABILITY_CHECK_DISABLE variável de ambiente como true.

Consulte também