다음을 통해 공유


SQL 프로젝트 빌드 문제 해결

SQL 프로젝트 빌드 출력은 데이터베이스 모델 생성 및 T-SQL 유효성 검사에 대한 피드백을 제공합니다. 기본 명령줄 출력에는 오류 및 일부 상태 정보만 표시됩니다. 이 문서에서는 빌드 문제 및 SQL 프로젝트에서 발생하는 일반적인 오류를 해결하는 데 도움이 되는 자세한 로깅을 사용하도록 설정하는 방법에 대해 설명합니다.

자세한 로깅 사용 설정

SQL 프로젝트의 빌드 문제를 추가로 해결하려면 명령줄 스위치를 사용하여 더 많은 로그를 생성할 수 있습니다. 더 많은 로깅은 오류의 원인뿐만 아니라 빌드 속도 저하를 식별하는 데 도움이 될 수 있습니다. 두 가지 기본 옵션은 다음과 같습니다.

  • 이진 로거: 이 옵션은 MSBuild 로그 뷰어를 사용하여 볼 수 있는 이진 로그 파일(msbuild.binlog)을 생성합니다. 이 뷰어는 종속성 문제를 진단하고 빌드 프로세스를 최적화하는 데 유용합니다. 이 로그를 생성하는 명령은 다음과 같습니다.

    dotnet build -bl
    
  • 파일 로거: 이 옵션은 빌드에서 가장 자세한 로깅을 포함하는 텍스트 로그 파일을 생성합니다. 이 로그를 생성하는 명령은 다음과 같습니다.

    dotnet build -flp:v=diag
    

요약하면 두 로그를 모두 생성하는 결합된 명령은 다음과 같습니다.

dotnet build -bl -flp:v=diag

스위치의 전체 집합은 MSBuild Command-Line 참조에서 찾을 수 있습니다.

일반적인 문제

빌드 오류

빌드 오류가 잘못된 구문을 나타내는 경우 출력은 잘못된 코드를 포함하는 파일도 지정합니다. 최근에 추가된 구문을 사용하는 경우 프로젝트 SDK 버전을 업데이트해야 할 수 있습니다.

데이터베이스 프로젝트의 빌드 오류에는 SQLxxxxx 5자리 숫자인 오류 코드 xxxxx 가 있어야 합니다. 해결되지 않은 참조(SQL71501/SQL71502)에 대한 오류를 발생시키는 몇 가지 문제는 다음과 같습니다.

  • 모호한 개체 이름입니다. 권장 사항:
    • 완전히 확인된 이름 사용([schema].[table].[column])
    • 필요에 따라 개체 이름 바꾸기
  • 시스템 개체입니다. 추천:
  • 외부 참조입니다. 추천:

기타 실패

오류가 발생할 경우, /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 오류 코드는 다음 리소스를 참조하세요.