Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
L'output della compilazione del progetto SQL fornisce commenti e suggerimenti sulla costruzione del modello di database e sulla convalida T-SQL. L'output della riga di comando predefinito mostra solo gli errori e alcune informazioni sullo stato. In questo articolo viene illustrato come abilitare la registrazione più dettagliata per risolvere i problemi di compilazione e gli errori comuni riscontrati con i progetti SQL.
Abilitare la registrazione dettagliata
Per risolvere ulteriormente i problemi di compilazione per i progetti SQL, è possibile usare le opzioni della riga di comando per generare altri log. Una maggiore registrazione può essere utile non solo per identificare la causa degli errori, ma anche per la riduzione della velocità di compilazione. Le due opzioni principali sono:
Logger binario: questa opzione genera un file di log binario (
msbuild.binlog) che può essere visualizzato usando MSBuild Log Viewer. Questo visualizzatore è utile per diagnosticare i problemi di dipendenza e ottimizzare il processo di compilazione. Il comando per generare questo log è:dotnet build -blFile logger: questa opzione genera un file di log testuale che contiene la registrazione più dettagliata del build. Il comando per generare questo log è:
dotnet build -flp:v=diag
Per riepilogare, il comando combinato per generare entrambi i log è:
dotnet build -bl -flp:v=diag
Il set completo di opzioni è disponibile in MSBuild Command-Line Reference (Informazioni di riferimento su MSBuild).
Problemi comuni
Errori di compilazione
Quando l'errore di compilazione indica una sintassi non valida, l'output specifica anche il file che contiene il codice errato. Se si usa la sintassi aggiunta di recente, potrebbe essere necessario aggiornare la versione di Project SDK.
Gli errori di compilazione da un progetto di database devono avere SQLxxxxx codice di errore, dove xxxxx è un numero a cinque cifre. Alcuni problemi che causano l'errore per un riferimento non risolto (SQL71501/SQL71502) sono:
- Nomi di oggetti ambigui. Consigli:
- Usare nomi completamente risolti (
[schema].[table].[column]) - Rinominare gli oggetti in base alle esigenze
- Usare nomi completamente risolti (
- Oggetti di sistema. Raccomandazione:
- Aggiungere un riferimento al database master o msdb tramite riferimento al pacchetto o al database
- Riferimenti esterni. Raccomandazione:
- Verificare che le variabili SQLCMD siano impostate correttamente per il riferimento al database o il riferimento al pacchetto
Altri errori
Per un errore che si verifica durante il ripristino, eseguire prima una compilazione pulita dopo l'eliminazione delle /bin cartelle e /obj nel progetto.
Se l'errore include SDK 'Microsoft.Build.Sql' specified could not be found, iniziare verificando che i feed del pacchetto NuGet siano validi. Il comando di base per visualizzare i feed correnti è:
dotnet nuget list source
Il feed NuGet pubblico è:
dotnet nuget add source https://api.nuget.org/v3/index.json -n nuget.org
Se un ambiente richiede feed privati, assicurati che siano validi e accessibili. Potrebbe essere necessario eseguire l'autenticazione con i feed di pacchetti. L'abilitazione dell'autenticazione durante la compilazione del progetto può essere eseguita con:
dotnet build --interactive
Per MSBuild, il comando equivalente è:
msbuild /p:nugetInteractive=true
Per altri codici di errore non SQL, vedere le risorse seguenti:
- Errori di MSBuild: Informazioni di riferimento su MSBuild
- Errori di NETSDK: elenco di errori di .NET SDK
- Errori NuGet: Informazioni di riferimento su errori e avvisi NuGet