Найдите Sqlpackage.exe на клиентском компьютере, чтобы установить DACPAC.

Я разрабатываю .Net-приложение, которое будет развертывать dacpac на клиентской машине. Для этой цели мне потребуется SqlPackage.exe для развертывания dacpac. Мне нужен абсолютный путь к SqlPackage.exe, чтобы мое приложение работало независимо от конфигурации клиентского компьютера.

Не могли бы вы помочь мне достичь этого.

Спасибо, Йогеш


person Yogesh Irmal    schedule 16.05.2017    source источник
comment
Альтернативой sqlpackage является пакет Microsoft.SqlServer.Dac, который позволяет вам нужно программно развернуть DACPAC.   -  person Jeroen Mostert    schedule 17.05.2017
comment
Это вариант, который, я думаю, мне нужно будет рассмотреть. Спасибо, Йерун.   -  person Yogesh Irmal    schedule 17.05.2017
comment
Я понимаю, что этот вопрос немного устарел, но просто хочу отметить, что предлагаемый пакет NuGet не выглядит так, как будто он поддерживается (или когда-либо действительно был). Есть только две версии, последней уже более пяти лет.   -  person jamesmus    schedule 30.10.2019


Ответы (3)


Вы можете установить sqlpackage.exe двумя способами:

  • SSDT (инструменты данных SQL Server): расположение будет VS Install Directory\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\{SqlVersion}, каталог установки VS: C:\Program Files (x86)\Microsoft Visual Studio {VsVersion}.0
  • SQL Server Management Studio (SSMS) и Dac Framework MSI: C:\Program Files (x86)\Microsoft SQL Server\{SqlVersion}\Dac\bin

SqlVersion — это 140 для SQL Server 2017, 130 для SQL Server 2016 и т. д.

VsVersion — это 14 для Visual Studio 2017.

Подробнее в этом вопросе.

person Dávid Molnár    schedule 17.05.2017
comment
Спасибо, Дэвид. На самом деле мы запускаем sqlpackage.exe из пакетного файла, поэтому нам нужно точное местоположение sqlpackage.exe на клиентской машине. Клиент мог установить его на C: или D: или на любой другой диск. Мы не можем оставить путь статичным. - person Yogesh Irmal; 17.05.2017
comment
На самом деле, я бы просто скопировал файл sqlpackage.exe со всеми его зависимостями и развернул бы его с помощью моего командного файла. Так что моим клиентам не нужно ничего устанавливать, мне не нужно искать правильный путь и все довольны :) - person Dávid Molnár; 17.05.2017
comment
но я предполагаю, что нам не разрешено распространять сборки Microsoft и отправлять их клиенту как часть нашего продукта. - person Yogesh Irmal; 17.05.2017
comment
Другой вариант — проверить все возможные пути. В пакетном сценарии выполните: if Exists (путь), для c:\..., d:\.., e:\.. и т. д. Возможно, это ненадежно, но может работать. - person Dávid Molnár; 17.05.2017
comment
Да, это сработает. Jeroen просто предложил еще один вариант альтернативы sqlpackage.exe. Я попробую это, если не сработало, то единственный вариант, который я оставил, - проверить все возможные пути. - person Yogesh Irmal; 17.05.2017
comment
Платформа приложений уровня данных является распространяемой. Подробности см. в условиях лицензии, но в целом вы можете поставлять его вместе со своим приложением и использовать для выполнения операций с базой данных. - person Steven Green; 18.05.2017
comment
Если это так, то это здорово .. Спасибо Стивену за помощь - person Yogesh Irmal; 18.05.2017
comment
Я думаю, что 140 для SQL Server 2017. 2016 соответствует 130. - person nawfal; 02.12.2017
comment
Это не работает. Я установил SSDT со всеми включенными параметрами, а папки Extensions нет. edit: Каталог установки VS2017 изменился, что не задокументировано нигде, что я могу найти - теперь он находится в C:\Program Files (x86)\Microsoft Visual Studio\2017 - person Tom W; 07.12.2017
comment
Используйте vswhere.exe, чтобы найти экземпляры Visual Studio. Это может помочь вам найти sqlpackage.exe. https://github.com/Microsoft/vswhere - person DaleyKD; 27.12.2017

Чтобы найти sqlpackage программно, вы можете использовать библиотеку powershell TaskModuleSqlUtility. Либо запустите Invoke-DacpacDeployment из сценария powershell (извините, не C#), либо используйте функцию Get-SqlPackageOnTargetMachine для пути к sqlpackage.exe.

Найдите тесты в github для образцов.

person nawfal    schedule 10.08.2018

вы также можете скачать с сайта Microsoft doc

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

и проверьте свою версию sql и получите правильные инструкции

person Turbot    schedule 20.11.2020