Temukan Sqlpackage.exe di mesin klien untuk menginstal DACPAC

Saya sedang mengembangkan aplikasi .Net yang akan menyebarkan dacpac pada mesin klien. Untuk tujuan itu saya memerlukan SqlPackage.exe untuk menyebarkan dacpac. Saya memerlukan jalur absolut SqlPackage.exe agar aplikasi saya berfungsi terlepas dari konfigurasi mesin klien.

Bisakah Anda membantu saya mencapai ini.

Terima kasih, Yogesh


person Yogesh Irmal    schedule 16.05.2017    source sumber
comment
Alternatif untuk sqlpackage adalah paket Microsoft.SqlServer.Dac, yang memungkinkan Anda harus menyebarkan DACPAC secara terprogram.   -  person Jeroen Mostert    schedule 17.05.2017
comment
Ini adalah opsi yang saya rasa perlu saya pertimbangkan. Terima kasih Jeroen   -  person Yogesh Irmal    schedule 17.05.2017
comment
Saya menyadari bahwa pertanyaan ini sudah agak lama sekarang, tetapi hanya untuk menunjukkan bahwa paket NuGet yang disarankan sepertinya tidak (atau pernah benar-benar) dipertahankan. Hanya ada dua versi dan yang terbaru berumur lebih dari lima tahun.   -  person jamesmus    schedule 30.10.2019


Jawaban (3)


Anda dapat menginstal sqlpackage.exe dengan dua cara:

  • SSDT (SQL Server Data Tools): lokasinya di VS Install Directory\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\{SqlVersion}, VS direktori instalasi: C:\Program Files (x86)\Microsoft Visual Studio {VsVersion}.0
  • SQL Server Management Studio (SSMS) dan Dac Framework MSI: C:\Program Files (x86)\Microsoft SQL Server\{SqlVersion}\Dac\bin

SqlVersion adalah 140 untuk SQL Server 2017, 130 untuk SQL Server 2016 dll.

VsVersion adalah 14 untuk Visual Studio 2017

Detail selengkapnya di pertanyaan ini.

person Dávid Molnár    schedule 17.05.2017
comment
Terima kasih David. Sebenarnya kami mengeksekusi sqlpackage.exe dari file batch, jadi kami memerlukan lokasi pasti sqlpackage.exe di mesin klien. Klien mungkin telah menginstalnya di C: atau D: atau drive apa pun. Kita tidak bisa membiarkan jalurnya tetap statis. - person Yogesh Irmal; 17.05.2017
comment
Sebenarnya, saya hanya akan menyalin file sqlpackage.exe dan semua dependensinya dan menyebarkannya dengan file batch saya. Jadi klien saya tidak perlu menginstal apa pun, saya tidak perlu menemukan jalur yang benar dan semua orang senang :) - person Dávid Molnár; 17.05.2017
comment
tapi saya rasa kami tidak diperbolehkan mendistribusikan ulang rakitan Microsoft dan mengirimkannya sebagai bagian dari produk kami ke klien. - person Yogesh Irmal; 17.05.2017
comment
Pilihan lainnya adalah menguji semua kemungkinan jalur. Dalam skrip batch lakukan: jika Ada (jalur), untuk c:\..., d:\.., e:\.. dll. Mungkin tidak mudah, tetapi bisa berhasil. - person Dávid Molnár; 17.05.2017
comment
Ya itu akan berhasil..Jeroen hanya menyarankan satu opsi lagi sebagai alternatif untuk sqlpackage.exe. Saya akan mencoba ini jika tidak berhasil maka satu-satunya pilihan yang tersisa adalah menguji semua jalur yang mungkin. - person Yogesh Irmal; 17.05.2017
comment
Kerangka Aplikasi Tingkat Data dapat didistribusikan ulang. Lihat persyaratan lisensi untuk mengetahui detailnya, namun gambaran besarnya adalah Anda diperbolehkan mengirimkannya bersama aplikasi Anda dan menggunakannya untuk melakukan operasi database. - person Steven Green; 18.05.2017
comment
Jika ini masalahnya maka baguslah.. Terima kasih Steven atas bantuannya - person Yogesh Irmal; 18.05.2017
comment
Saya pikir 140 untuk SQL Server 2017. 2016 sama dengan 130. - person nawfal; 02.12.2017
comment
Ini tidak bekerja. Saya telah menginstal SSDT dengan semua opsi diaktifkan dan folder Extensions tidak ada. edit: Direktori instalasi VS2017 telah berubah, yang tidak didokumentasikan di mana pun yang dapat saya temukan - sekarang berada di C:\Program Files (x86)\Microsoft Visual Studio\2017 - person Tom W; 07.12.2017
comment
Gunakan vswhere.exe untuk membantu menemukan contoh Visual Studio. Ini dapat membantu Anda menemukan sqlpackage.exe. https://github.com/Microsoft/vswhere - person DaleyKD; 27.12.2017

Untuk menemukan sqlpackage secara terprogram, Anda dapat menggunakan pustaka powershell TaskModuleSqlUtility. Jalankan Invoke-DacpacDeployment dari skrip PowerShell (maaf bukan C#) atau gunakan fungsi Get-SqlPackageOnTargetMachine untuk jalur sqlpackage.exe.

Telusuri pengujian di github untuk mengetahui sampelnya.

person nawfal    schedule 10.08.2018

Anda juga dapat mengunduh dari situs microsoft doc

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

dan periksa versi sql Anda dan dapatkan instruksi yang benar

person Turbot    schedule 20.11.2020