Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La salida de compilación del proyecto SQL proporciona comentarios sobre la construcción del modelo de base de datos y la validación de T-SQL. La salida de la línea de comandos predeterminada solo muestra errores y alguna información de estado. En este artículo se describe cómo habilitar el registro más detallado para ayudar a solucionar problemas de compilación y errores comunes que se encuentran con proyectos SQL.
Habilitación del registro detallado
Para solucionar más problemas de compilación para proyectos de SQL, puede usar modificadores de línea de comandos para generar más registros. Más registros pueden ayudar a identificar no solo la causa de errores, sino también la degradación en la velocidad de compilación. Las dos opciones principales son:
Registrador binario: esta opción genera un archivo de registro binario (
msbuild.binlog) que se puede ver mediante el visor de registros de MSBuild. Este visor es útil para diagnosticar problemas de dependencia y optimizar el proceso de compilación. El comando para generar este registro es:dotnet build -blRegistrador de archivos: esta opción genera un archivo de registro de texto que contiene el registro más detallado de la compilación. El comando para generar este registro es:
dotnet build -flp:v=diag
Para volver a resumir, el comando combinado para generar ambos registros es:
dotnet build -bl -flp:v=diag
El conjunto completo de modificadores se puede encontrar en la referencia de línea de comandos de MSBuild.
Problemas comunes
Errores de compilación
Cuando el error de compilación indica una sintaxis no válida, la salida también especifica qué archivo contiene el código erróneo. Si usa la sintaxis que se ha agregado recientemente, es posible que tenga que actualizar la versión del SDK del proyecto.
Los errores de compilación de un proyecto de base de datos deben tener el código de error SQLxxxxx, donde xxxxx es un número de cinco dígitos. Algunos problemas que provocan el error para una referencia sin resolver (SQL71501/SQL71502) son:
- Nombres de objeto ambiguos. Recomendaciones:
- Usar nombres totalmente resueltos (
[schema].[table].[column]) - Cambiar el nombre de los objetos según sea necesario
- Usar nombres totalmente resueltos (
- Objetos de sistema. Recomendación:
- Agregar referencia a master o msdb a través de la referencia de paquete o la referencia de base de datos
- Referencias externas. Recomendación:
- Asegúrese de que las variables SQLCMD están configuradas correctamente para la referencia de base de datos o la referencia del paquete
Otros errores
Para un error que se produce durante la restauración, ejecute primero una compilación limpia después de eliminar las carpetas /bin y /obj del proyecto.
Si el error incluye SDK 'Microsoft.Build.Sql' specified could not be found, comience comprobando que las fuentes de paquetes NuGet son válidas. El comando base para ver las fuentes actuales es:
dotnet nuget list source
La fuente pública de NuGet es:
dotnet nuget add source https://api.nuget.org/v3/index.json -n nuget.org
Si el entorno requiere fuentes privadas, asegúrese de que son válidas y accesibles. Es posible que tenga que autenticarse con fuentes de paquetes. La habilitación de la autenticación durante la compilación del proyecto se puede realizar con lo siguiente:
dotnet build --interactive
Para MSBuild, el comando equivalente es:
msbuild /p:nugetInteractive=true
Para ver otros códigos de error que no son de SQL, consulte los siguientes recursos:
- Errores de MSBuild: referencia de MSBuild
- Errores de NETSDK: lista de errores del SDK de .NET
- Errores de NuGet: referencia de errores y advertencias de NuGet