NETSDK1045: o SDK do .NET atual não é compatível com 'versão mais recente' como destino.

Este artigo se aplica a: ✔️ SDK do .NET Core 2.1.100 e versões posteriores

Esse erro ocorre quando as ferramentas de compilação não conseguem encontrar a versão do SDK do .NET necessária para compilar um projeto. Normalmente, isso ocorre devido a um problema de instalação ou configuração do SDK do .NET. A mensagem de erro completa é semelhante ao seguinte exemplo:

NETSDK1045: o SDK do .NET atual não é compatível com 'versão mais recente' como destino. Direcione a 'versão mais antiga' ou anterior ou use uma versão do SDK do .NET compatível com a 'versão mais recente'.

As seções a seguir descrevem alguns dos possíveis motivos para esse erro. Verifique cada um deles e veja qual se aplica a você. Lembre-se de que, ao fazer alterações no ambiente ou nos arquivos de configuração, talvez seja necessário reiniciar as janelas de comando, reiniciar o Visual Studio ou reinicializar o computador para que as alterações entrem em vigor.

Versão do SDK do .NET

Abra o arquivo de projeto (.csproj, .vbproj ou .fsproj) e verifique a estrutura de destino. Essa é a versão da estrutura que o aplicativo está tentando usar.

<TargetFramework>netcoreapp3.0</TargetFramework>

Verifique se a versão do .NET listada foi instalada no computador. Você pode listar as versões instaladas usando o seguinte comando (abra um Prompt de Comando do Desenvolvedor e execute este comando):

dotnet --list-sdks

Arquitetura x86 ou x64

Cada versão do SDK do .NET está disponível nas arquiteturas x86 e x64. O projeto pode estar tentando localizar o SDK do .NET da arquitetura errada ou o SDK do .NET da arquitetura necessária para o projeto pode não estar instalado. Verifique as pastas de instalação da arquitetura necessária. Por exemplo, no Windows, a versão x86 do SDK do .NET foi instalada em C:\Program Files (x86)\dotnet e a versão x64 foi instalada em C:\Program Files\dotnet. Veja Como verificar se o .NET já foi instalado e escolha o sistema operacional para descobrir como detectar o que foi instalado no computador.

Se a versão necessária não foi instalada, localize a que você precisa na página Downloads do .NET.

Versão do Visual Studio

O SDK do .NET pode ter sido instalado com o Visual Studio 2022, portanto, a atualização para uma versão posterior do Visual Studio pode instalar um SDK do .NET posterior e resolver esse erro. Para obter mais informações, confira Atualizar o Visual Studio.

Versão prévia não habilitada

Se você tiver uma versão prévia instalada da versão solicitada do SDK do .NET, também precisará definir a opção de habilitar as versões prévias no Visual Studio. Acesse Ferramentas>Opções>Ambiente>Versão Prévia do Recurso e verifique se a opção Usar versões prévias do SDK do .NET Core foi marcada.

Versão do Visual Studio

Por exemplo, o .NET Core 3.0 e posteriores exigem o Visual Studio 2019. Atualize para o Visual Studio 2019 versão 16.3 ou posterior, para criar o projeto.

Visual Studio para Mac

O VS para Mac dá suporte ao dotnet msbuild e ao MSBuild no Mono. Mas a versão do SDK do .NET é rebaixada quando o MSBuild no Mono é usado, e isso pode resultar no erro NETSDK1045.

Abra a janela Propriedades da Solução (pressione Ctrl e clique na solução na janela Solução e selecione Propriedades), selecione Compilar – Geral e desmarque Compilar com o MSBuild no Mono. Essa opção Compilar com MSBuild no Mono verificará se há projetos clássicos na solução e isso poderá causar problemas, pois o Mono não dá suporte aos SDKs do .NET posteriores.

Para obter mais informações sobre quais versões do Visual Studio para Mac 2022 dão suporte a quais versões do .NET, consulte Versões com suporte do .NET.

Variável de ambiente PATH

As ferramentas de compilação usam a variável de ambiente PATH, para encontrar a versão certa das ferramentas de compilação do .NET. Se a variável de ambiente PATH contiver caminhos diretos para ferramentas de compilação mais antigas, esta mensagem de erro pode ser exibida. Verifique se o único caminho para as ferramentas do .NET na variável de ambiente PATH é para a pasta dotnet de nível superior, por exemplo, C:\Program Files\dotnet. Um exemplo de um PATH incorreto seria algo semelhante a C:\Program Files\dotnet\2.1.0\sdks.

Variável de ambiente MSBuildSDKPath

Verifique a variável de ambiente MSBuildSDKPath. Essa variável de ambiente opcional é reconhecida pelo MSBuild e, se definida, substitui o valor padrão. Ela pode ser definida como uma versão mais antiga específica do SDK do .NET. Se estiver definida, tente excluí-la e recompilar o projeto.

Arquivo global.json

Verifique se há um arquivo global.json na pasta raiz do projeto e na cadeia de diretórios até a raiz do volume, pois ele pode estar em qualquer lugar na estrutura de pastas. Se ele contiver uma versão do SDK, exclua o nó de sdk e todos os filhos ou atualize-o para a versão mais recente desejada do .NET Core.

{
  "sdk": {
    "version": "2.1.0"
  }
}

O arquivo global.json não é necessário. Portanto, se ele não contiver nada além do nó sdk, você pode excluir todo o arquivo.

Arquivo Directory.build.props

O arquivo Directory.build.props é um arquivo opcional do MSBuild, que pode definir propriedades globais. Verifique esses arquivos na pasta da solução e na cadeia de diretórios até a raiz do volume, pois eles podem estar em qualquer lugar na estrutura de pastas. Procure os elementos TargetFramework ou configurações de MSBuildSDKPath que possam substituir as configurações desejadas.

Confira também