x64 visual tools studio para for descargar data and sql-server-2014 ssdt sqlpackage

sql-server-2014 - tools - sql server visual studio 2017



¿Publicar DACPAC en SQL Server 2014 usando SqlPackage.exe? (3)

Ahora hay un paquete oficial de Microsoft.Data.Tools.Msbuild NuGet que contiene SqlPackage.exe y una publicación de blog con los detalles:

Este paquete de NuGet contiene todos los componentes necesarios para construir y publicar proyectos de SQL (.sqlproj). Esto es compatible con la integración continua y los escenarios de implementación continua: los proyectos SQL pueden construirse en un agente de compilación local sin instalar los productos completos de Visual Studio o SQL Server Data Tools (SSDT).

He estado publicando con éxito DACPACs en instancias de SQL Server 2008-2012 usando SqlPackage.exe, tal como lo instalaron las herramientas de datos de SQL Server (y generalmente se encuentran en C:/Program Files (x86)/Microsoft SQL Server/110/DAC/bin ) . Sin embargo, al intentar publicar un DACPAC dirigido a 2014 en una instancia de SQL Server 2014 usando este mismo SqlPackage.exe, obtengo lo siguiente:

*** Could not deploy package. Internal Error. The database platform service with type Microsoft.Data.Tools. Schema.Sql.Sql120DatabaseSchemaProvider is not valid. You must make sure the service is loaded, or you must provide the full type name of a valid database platform service.

He encontrado información mínima con respecto a esto; Lo más cercano que encontré fue un problem publicación en Azure.

Me he mantenido actualizado con los parches SSDT, pero supongo que el SqlPackage.exe que tengo (que muestra una versión 11.0.2902.0) es simplemente incompatible. Puedo publicar en esta misma instancia utilizando el comando Publicar de Visual Studio 2012, por lo que la instancia en sí no parece ser el problema.

¿Hay una versión más reciente de SqlPackage disponible que permita publicar un DACPAC 2014 en un servidor 2014? ¿O otra forma de escritura de hacer esto?


Sí, hay una nueva versión compatible con SQL Server 2005-2016 disponible y se instala en una ubicación diferente a la versión anterior (SQL Server 2012 e inferior). De hecho, tendrá diferentes ubicaciones de instalación dependiendo de si solo usa SSDT o si lo instala como parte de SSMS o el instalador independiente.

  • SSDT instala los DLL Dac dentro de Visual Studio en las últimas versiones. Esto es para evitar problemas de lado a lado (Visual Studio 2012 vs 2013 vs SSMS) que requieren que todos se actualicen para usar el código más reciente.

    • Si ha actualizado a la última SSDT , encontrará SqlPackage.exe y las DLL relacionadas en el directorio de instalación de VS / Common7 / IDE / Extensions / Microsoft / SQLDB / DAC / 130 . Para VS2013, el directorio de instalación de VS es C: / Archivos de programa (x86) / Microsoft Visual Studio 12.0 , y es 14.0 para VS2015.
  • SQL Server Management Studio (SSMS) y el Dac Framework MSI independiente se instalan en la ubicación de todo el sistema. Esto es C: / Archivos de programa (x86) / Microsoft SQL Server / 130 / Dac / bin .


SSDT instala los DLL Dac dentro de Visual Studio en las últimas versiones. Esto es para evitar problemas de lado a lado (Visual Studio 2012 vs 2013 vs SSMS) que requieren que todos se actualicen para usar el código más reciente. Si ha actualizado a la última SSDT, encontrará SqlPackage.exe y las DLL relacionadas en el directorio de instalación de VS / Common7 / IDE / Extensions / Microsoft / SQLDB / DAC / 130. Para VS2013, el directorio de instalación de VS es C: / Archivos de programa (x86) / Microsoft Visual Studio 12.0, y es 14.0 para VS2015. SQL Server Management Studio (SSMS) y el Dac Framework MSI independiente se instalan en la ubicación de todo el sistema. Esto es C: / Archivos de programa (x86) / Microsoft SQL Server / 130 / Dac / bin.

** Ans del Sr. Kevin Cunnane. es un proceso correcto, pero si la base de datos en sql2016 usa 140 / dac **