En este post te voy a explicar cómo resolver el error: MSB4019: The imported project “Microsoft.Data.Tools.Schema.SqlTasks.targets.”
¿Qué ocasiona este error?
Error MSB4019: The imported project “C:\Program Files\dotnet\sdk\7.0.100\Microsoft\VisualStudio\v14.0\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets” was not found. Confirm that the expression in the Import declaration “Microsoft.Data.Tools.Schema.SqlTasks.targets” is correct, and that the file exists on disk.
Este error ocurre cuando tratas de compilar un proyecto de base de datos (sqlproj) con DotNet build en lugar de MsBuild. No vas a tener este error cuando compiles tu solución con Visual Studio.
¿Cómo reparo este error?
Puedes compilar tu proyecto con MsBuild, esto aplica para las soluciones donde ningún proyecto tiene que ser compilado en DotNet Core. Si tienes proyectos de base de datos con proyectos en SDK, entonces, te recomiendo aplicar los siguientes pasos.
- Abre los proyectos de base de datos, y remueve todos los bloques import que mencionan los archivos: «Microsoft.Common.props» y «Microsoft.Data.Tools.Schema.SqlTasks.targets».
- Agrega la referencia Microsoft.Build.Sql en el archivo csproj.
- Guarda cambios y compila en Visual Studio, no deberías tener ningún problema para compilar el proyecto desde Visual Studio.
- Borra los directorios bin y obj de todos los proyectos de la solución. Recomiendo un borrado manual en vez de un Clean.
Compilar con Cake y DotNet Build.
Cuando compiles el proyecto con los cambios en el archivo csproj, es posible que no todos los proyectos dentro de tu solución sean compatibles. En ese caso, tendrás que mover tus proyectos de base de datos a otra solución. Esto puede o no ocurrir, depende de tus proyectos.
Para compilar la solución que alberga los proyectos SQL con dotnet build, debes usar el siguiente comando.
Para emplear Cake debes de incorporar el parámetro NetCoreBuild en tu Task.
Problemas similares.
Puedes tener problemas parecidos (Error MSB4019) con los sitios web. Ese problema tiene una solución distinta.
Referencias:
- NVL in SQL Server - 2023-11-01
- ¿Que es Cake Build? - 2023-02-22
- #How to fix error: MSB4019: The imported project «Microsoft.Data.Tools.Schema.SqlTasks.targets» was not found - 2023-02-20