Dela via


Felsöka bygge av SQL-projekt

Utdata från SQL-projektets byggprocess ger feedback om uppbyggnad av databasmodell och T-SQL-validering. Standardkommandoradens utdata visar endast fel och viss statusinformation. I den här artikeln diskuterar vi hur du aktiverar mer utförlig loggning för att felsöka byggproblem och vanliga fel som påträffas med SQL-projekt.

Aktivera utförlig loggning

För att ytterligare felsöka byggproblem för SQL-projekt kan du använda kommandoradsväxlar för att generera fler loggar. Mer loggning kan hjälpa dig att inte bara identifiera orsaken till fel utan även försämra bygghastigheten. De två primära alternativen är:

  • Binär loggning: Det här alternativet genererar en binär loggfil (msbuild.binlog) som kan visas med hjälp av MSBuild Log Viewer. Det här visningsprogrammet är användbart för att diagnostisera beroendeproblem och optimera byggprocessen. Kommandot för att generera den här loggen är:

    dotnet build -bl
    
  • Filloggare: Det här alternativet genererar en textloggfil som innehåller den mest utförliga loggningen från bygget. Kommandot för att generera den här loggen är:

    dotnet build -flp:v=diag
    

För att sammanfatta är det kombinerade kommandot för att generera båda loggarna:

dotnet build -bl -flp:v=diag

Den fullständiga uppsättningen växlar finns i MSBuild-Command-Line-referensen.

Vanliga problem

Build-fel

När byggfelet anger ogiltig syntax anger utdata också vilken fil som innehåller den felaktiga koden. Om du använder syntax som nyligen har lagts till kan du behöva uppdatera din projekt-SDK-version.

Versionsfel från ett databasprojekt bör ha SQLxxxxx felkod, där xxxxx är ett femsiffrigt tal. Några problem som orsakar felet för en olöst referens (SQL71501/SQL71502) är:

  • Tvetydiga objektnamn. Rekommendationer:
    • Använd fullständigt lösta namn ([schema].[table].[column])
    • Byt namn på objekt efter behov
  • Systemobjekt. Rekommendation:
  • Externa referenser. Rekommendation:

Andra fel

För ett fel som inträffar under återställningen kör du först en ren version när du har raderat mapparna /bin och /obj i projektet.

Om felet innehåller SDK 'Microsoft.Build.Sql' specified could not be found​börjar du med att verifiera att NuGet-paketfeeds är giltiga. Baskommandot för att visa aktuella feeds är:

dotnet nuget list source​

Det offentliga NuGet-flödet är:

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

Om din miljö kräver privata flöden, se till att de är giltiga och tillgängliga. Du kan behöva autentisera med paketflöden. Aktivering av autentisering under projektbygget kan göras med:

dotnet build --interactive

För MSBuild är motsvarande kommando:

msbuild /p:nugetInteractive=true​

Andra felkoder som inte är SQL-fel finns i följande resurser: