This is a short note for anyone that may be interested in redistributing sqlpackage.exe. If this isn’t you then no need to keep reading. Ostensibly this is here for anyone that bingles for this information.
sqlpackage.exe is a command-line that ships with SQL Server Development Tools (SSDT) in SQL Server 2012 and its main purpose (amongst other things) is to deploy .dacpac files from the command-line. Its quite conceivable that one might want to install only sqlpackage.exe rather than the full SSDT suite (for example on a production server) and I myself have recently had that need. I enquired to the SSDT product team about the possibility of doing this. I said:
Back in VS DB Proj days it was possible to use VSDBCMD.exe on a machine that did not have the full VS shell install by shipping lots of pre-requisites along for the ride (details at How to: Prepare a Database for Deployment From a Command Prompt by Using VSDBCMD.EXE).
Is there a similar mechanism for using VSDBMCD.exe’s replacement, sqlpackage.exe?
here was the reply from Barclay Hill who heads up the development team:
Yes, SQLPackage.exe is the analogy of VSDBCMD.exe. You can acquire separately, in a stand-alone package, by installing DACFX.
You can get it from:
You will notice it has dependencies on SQLDOM and SQLCLRTYPES. WebPI will install these for you, but it is al carte on the feature pack.
So, now you know. I didn’t enquire about licensing of DACFX but given SSDT is free I am going to assume that the same applies to DACFX too.
UPDATE: Gert Drapers has posted an article Headless MSBuild Support for SSDT (*.sqlproj) Projects in which he describes five seperate installations that need to be performed in order to run SSDT deployment without installing Visual Studio:
(see Gert's article for links to those five installation files)
Notice that two of those are mentioned in Barclay's quote above. I do not know if the other three are installed by WebPI or even whether they are required for sqlpackage.exe to work, one day I hope to get a clear answer on that from someone at Microsoft. Until that data comes, use the information here and in Gert's article to get your deployments working.