Поделиться через


Устранение проблем со сборкой проекта SQL

Выходные данные сборки проекта SQL предоставляют отзывы о построении модели базы данных и проверке T-SQL. Выходные данные командной строки по умолчанию отображают только ошибки и некоторые сведения о состоянии. В этой статье мы обсудим, как включить более подробное ведение журнала для устранения неполадок сборки и распространенных ошибок, возникающих в проектах SQL.

Включение подробного логирования

Чтобы устранить неполадки сборки для проектов SQL, можно использовать переключатели командной строки для создания дополнительных журналов. Больше ведения журнала может помочь не только в выявлении причины ошибок, но и снижения скорости сборки. Ниже приведены два основных варианта:

  • двоичный средство ведения журнала: этот параметр создает двоичный файл журнала (msbuild.binlog), который можно просмотреть с помощью средства просмотра журналов MSBuild. Это средство просмотра полезно для диагностики проблем зависимостей и оптимизации процесса сборки. Команда для создания этого журнала:

    dotnet build -bl
    
  • Файловый регистратор: этот параметр создает текстовый файл журнала, содержащий наиболее подробные записи логов сборки. Команда для создания этого журнала:

    dotnet build -flp:v=diag
    

Подводя итог, объединенная команда для создания обоих журналов:

dotnet build -bl -flp:v=diag

Полный набор переключателей можно найти в справочнике по командной строке MSBuild.

Распространенные проблемы

Ошибки сборки

Если ошибка сборки указывает недопустимый синтаксис, выходные данные также указывают, какой файл содержит неправильный код. Если вы используете синтаксис, который недавно добавлен, может потребоваться обновить версию пакета SDK для проекта.

Ошибки сборки из проекта базы данных должны иметь код ошибки SQLxxxxx, где xxxxx является пятизначным номером. Ниже приведены некоторые проблемы, которые вызывают ошибку для неразрешенной ссылки (SQL71501/SQL71502) :

  • Неоднозначные имена объектов. Рекомендации:
    • Используйте полностью разрешенные имена ([schema].[table].[column])
    • При необходимости переименуйте объекты
  • Системные объекты. Рекомендация:
    • Добавьте ссылку на master или msdb через ссылку на пакет или ссылку на базу данных
  • Внешние ссылки. Рекомендация:
    • Убедитесь, что переменные SQLCMD заданы правильно для ссылки на базу данных или ссылки на пакет

Другие сбои

Для ошибки, возникающей во время восстановления, сначала запустите чистую сборку после удаления /bin и /obj папок в проекте.

Если ошибка включает SDK 'Microsoft.Build.Sql' specified could not be found​, начните с проверки валидности источников пакетов NuGet. Базовая команда для просмотра текущих веб-каналов:

dotnet nuget list source​

Общедоступный фид NuGet:

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

Если для вашей среды требуются частные каналы, убедитесь, что они являются действительными и доступными. Возможно, вам потребуется пройти проверку подлинности с помощью каналов пакетов. Включить проверку подлинности во время сборки проекта можно следующим образом:

dotnet build --interactive

Для MSBuild эквивалентная команда:

msbuild /p:nugetInteractive=true​

Другие коды ошибок, отличных от SQL, см. в следующих ресурсах: