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
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de