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

Esse aviso indica que o SDK do .NET usado para compilar seu projeto é o EOL (fim da vida útil) e não recebe mais atualizações de segurança. A mensagem de aviso completa é semelhante ao exemplo a seguir:

NETSDK1239: O SDK atual do .NET (<version>) chegou ao fim da vida útil em <date>. Ele não receberá mais atualizações de segurança: https://dotnet.microsoft.com/download

Para resolver o aviso, instale um SDK de .NET com suporte do https://dotnet.microsoft.com/download e atualize o global.json (se estiver presente) para selecionar a nova versão. Para obter a linha do tempo de suporte atual, consulte .NET versões e suporte.

Esse aviso é diferente de NETSDK1138, que é gerado quando a estrutura de destino do projeto está sem suporte. NETSDK1239 é emitido quando o SDK que executa o build está fora de suporte, independentemente de qual framework de destino você usa.

Como a verificação funciona

A verificação é aceita e só é executada quando a propriedade CheckSdkVulnerabilities MSBuild é definida como true:

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

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

Por padrão, a CLI do .NET atualiza um cache local de metadados de versão do SDK em segundo plano no máximo uma vez a cada 24 horas em ~/.dotnet/sdk-vulnerability-cache/. Defina DOTNET_SDK_VULNERABILITY_CHECK_INTERVAL_HOURS para alterar o intervalo de atualização. A verificação do MSBuild lê somente esse cache; ele não faz chamadas de rede durante o build.

Suprimir o aviso

Para suprimir o aviso sem atualizar o SDK:

  • Adicionar NETSDK1239 a NoWarn:

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

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

Consulte também