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 錯誤碼,其中 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 錯誤碼,請參閱下列資源:
- MSBuild 錯誤: MSBuild 引用
- NETSDK 錯誤: .NET SDK 錯誤清單
- NuGet 錯誤: NuGet 錯誤和警告參考