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.
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 em seu projeto e em sua solução e suba a 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.