THE SQL Server Blog Spot on the Web

Welcome to - The SQL Server blog spot on the web Sign in | |
in Search

Jamie Thomson

This is the blog of Jamie Thomson, a data mangler in London working for Dunnhumby

Redistribution of sqlpackage.exe [SSDT]

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:

  • dacframework.msi
  • SQLDOM.msi
  • SQLLS.msi
  • SQLSysClrTypes.msi
  • SSDTBuildUtilities.msi

(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.

Published Wednesday, May 30, 2012 4:15 PM by jamiet

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS



Tom Potts said:

Thanks for this, Jamie, it's been very useful.  In case anyone else has installed, but then didn't know where sqlpackage.exe was located, it's installed into "${Programfiles}\Microsoft SQL Server\110\DAC\bin" (so "C:\Program Files (x86)\Microsoft SQL Server\110\DAC\bin" on the 64-bit Windows Server I installed it on).

August 15, 2012 3:56 AM

Anup Sharma said:

October 1, 2013 9:34 AM

john said:

any tips on the 2014 headless build.

I am having a few issues getting that working. It looks like the InstallDir reg key is missing and a few binary version differences are causing some headaches.

August 5, 2014 1:00 AM

Leave a Comment


This Blog


Privacy Statement