Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Find Sqlpackage.exe on client machine to install DACPAC

Tags:

c#

.net

dacpac

I'm developing a .Net-application that would deploy a dacpac on a client machine. For that purpose I would require SqlPackage.exe to deploy the dacpac. I need a absolute path of SqlPackage.exe to make my application work irrespective of client's machine configuration.

Can you please help me to achieve this.

Thanks, Yogesh

like image 669
Yogesh Irmal Avatar asked May 16 '17 14:05

Yogesh Irmal


People also ask

Where can I find SqlPackage EXE?

In my case, the executable file for the SQLPackage is usually located at “C:\Program Files (x86)\Microsoft SQL Server\140\DAC\bin“. Once the path has been added click on OK. Now that the path of the executable has been added to the system variables, we can directly call the SQLPackage from the command-line.

Where is SQL package installed?

The SqlPackage tool is installed under C:\Program Files (x86)\Microsoft SQL Server\140\DAC\bin. The script uses sqlcmd and SqlPackage tool; make sure that the path variable is updated accordingly. Restore he database using import action type.

What does SqlPackage EXE do?

The SqlPackage.exe publish operation incrementally updates the schema of a target database to match the structure of a source database. Publishing a deployment package that contains user data for all or a subset of tables update the table data in addition to the schema.


Video Answer


3 Answers

You can install sqlpackage.exe in two ways:

  • SSDT (SQL Server Data Tools): the location will be VS Install Directory\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\{SqlVersion}, VS install directory: C:\Program Files (x86)\Microsoft Visual Studio {VsVersion}.0
  • SQL Server Management Studio (SSMS) and the Dac Framework MSI: C:\Program Files (x86)\Microsoft SQL Server\{SqlVersion}\Dac\bin

SqlVersion is 140 for the SQL Server 2017, 130 for the SQL Server 2016 etc.

VsVersion is 14 for Visual Studio 2017

More details in this question.

like image 111
Dávid Molnár Avatar answered Oct 16 '22 19:10

Dávid Molnár


To find sqlpackage programmatically you can make use of the TaskModuleSqlUtility powershell library. Either run the Invoke-DacpacDeployment from the powershell script (sorry not C#) or make use of Get-SqlPackageOnTargetMachine function for sqlpackage.exe path.

Search for tests in github for samples.

like image 3
nawfal Avatar answered Oct 16 '22 20:10

nawfal


you also can download from microsoft doc site

https://learn.microsoft.com/en-us/sql/tools/sqlpackage-download?view=sql-server-ver15&viewFallbackFrom=sql-server-ver17

and check your version of sql and get correct instructions

like image 1
Turbot Avatar answered Oct 16 '22 20:10

Turbot