Compartilhar via


Solucionar problemas de build de projeto do SQL

A saída de build do projeto SQL fornece comentários sobre a construção do modelo de banco de dados e a validação do T-SQL. A saída da linha de comando padrão mostra apenas erros e algumas informações de status. Neste artigo, discutiremos como habilitar o registro em log mais detalhado para ajudar a solucionar problemas de build e erros comuns encontrados com projetos SQL.

Habilitar registro em log detalhado

Para solucionar mais problemas de build para projetos SQL, você pode usar comutadores de linha de comando para gerar mais logs. Mais logs podem ajudar a identificar não apenas a causa de erros, mas também a degradação na velocidade de build. As duas opções principais são:

  • Agente binário: essa opção gera um arquivo de log binário (msbuild.binlog) que pode ser exibido usando o Visualizador de Logs do MSBuild. Esse visualizador é útil para diagnosticar problemas de dependência e otimizar o processo de build. O comando para gerar esse log é:

    dotnet build -bl
    
  • Registrador de arquivos: essa opção gera um arquivo de log de texto que contém o log mais minucioso do build. O comando para gerar esse log é:

    dotnet build -flp:v=diag
    

Para recapitular, o comando combinado para gerar ambos os logs é:

dotnet build -bl -flp:v=diag

O conjunto completo de comutadores pode ser encontrado na Referência de linha de comando do MSBuild.

Problemas comuns

Erros de compilação

Quando o erro de build indica sintaxe inválida, a saída também especifica qual arquivo contém o código incorreto. Se você estiver usando a sintaxe que foi adicionada recentemente, talvez seja necessário atualizar a versão do SDK do projeto.

Erros de build de um projeto de banco de dados devem ter SQLxxxxx código de erro, onde xxxxx está um número de cinco dígitos. Alguns problemas que causam o erro para uma referência não resolvida (SQL71501/SQL71502) são:

  • Nomes de objeto ambíguos. Recomendações:
    • Usar nomes totalmente resolvidos ([schema].[table].[column])
    • Renomear objetos conforme necessário
  • Objetos do sistema. Recomendação:
  • Referências externas. Recomendação:
    • Verifique se as variáveis SQLCMD estão definidas corretamente para a referência de banco de dados ou referência de pacote

Outras falhas

Para um erro que ocorre durante a restauração, primeiro execute um build limpo após excluir as pastas /bin e /obj no projeto.

Se o erro incluir SDK 'Microsoft.Build.Sql' specified could not be found​, comece verificando se os feeds de pacote do NuGet são válidos. O comando base para exibir feeds atuais é:

dotnet nuget list source​

O feed público do NuGet é:

dotnet nuget add source https://api.nuget.org/v3/index.json -n nuget.org​

Se o ambiente exigir feeds privados, verifique se eles são válidos e acessíveis. Pode ser necessário autenticar com feeds de pacote. A habilitação da autenticação durante o build do projeto pode ser feita com:

dotnet build --interactive

Para o MSBuild, o comando equivalente é:

msbuild /p:nugetInteractive=true​

Para outros códigos de erro não SQL, consulte os seguintes recursos: