Partilhar via


Solucionar problemas de compilação de projeto SQL

A saída de compilação 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, discutimos como habilitar um log mais detalhado para ajudar a solucionar problemas de compilação e erros comuns encontrados com projetos SQL.

Ativar registo verboso

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

  • Registador binário: Esta opção gera um ficheiro de registo binário (msbuild.binlog) que pode ser visualizado utilizando o MSBuild Log Viewer. Este visualizador é útil para diagnosticar problemas de dependência e otimizar o processo de compilação. 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 detalhado da compilação. 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 switches pode ser encontrado no MSBuild Command-Line Reference.

Problemas comuns

Erros de compilação

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

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

Outras falhas

Para um erro que ocorre durante a restauração, primeiro execute uma compilação limpa depois de excluir as /bin pastas e /obj no projeto.

Se o erro incluir SDK 'Microsoft.Build.Sql' specified could not be found​, comece verificando se os feeds de pacote NuGet são válidos. O comando base para visualizar 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 seu ambiente exigir feeds privados, certifique-se de que eles sejam válidos e acessíveis. Poderá ser-lhe pedido que se autentique com feeds de pacotes. A ativação da autenticação durante a compilação do projeto pode ser feita com:

dotnet build --interactive

Para MSBuild, o comando equivalente é:

msbuild /p:nugetInteractive=true​

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