Подтвердить что ты не робот

Опубликовать DACPAC на SQL Server 2014 с помощью SqlPackage.exe?

Я успешно опубликовал DACPACs для экземпляров SQL Server 2008-2012 с использованием SqlPackage.exe, как установлено SQL Server Data Tools (и обычно находится в C:\Program Files (x86)\Microsoft SQL Server\110\DAC\bin). Тем не менее, при попытке опубликовать DACPAC с целевым назначением 2014 к экземпляру SQL Server 2014 с использованием этого же SqlPackage.exe, я получаю следующее:

*** Could not deploy package.
Internal Error. The database platform service with type Microsoft.Data.Tools.
Schema.Sql.Sql120DatabaseSchemaProvider is not valid. You must make sure the
service is loaded, or you must provide the full type name of a valid database
platform service.

Я нашел минимальную информацию об этом; ближайший, который я нашел, - это проблема публикации в Azure.

Я постоянно обновлял исправления SSDT, но предполагал, что SqlPackage.exe, который у меня есть (который показывает версию 11.0.2902.0), просто несовместим. Я могу опубликовать этот экземпляр с помощью команды Visual Studio 2012 Publish, поэтому сам экземпляр не кажется проблемой.

Существует ли более новая версия SqlPackage, которая будет поддерживать публикацию DACPAC 2014 на сервере 2014? Или другой способ для сценариев?

4b9b3361

Ответ 1

Да, есть новая версия, поддерживающая SQL Server 2005-2016, и она устанавливается в другое место, чем предыдущая версия (SQL Server 2012 и ниже). Фактически, вы будете иметь разные места установки в зависимости от того, используете ли вы только SSDT или если вы установите его как часть SSMS или автономного установщика.

  • SSDT устанавливает DLL DLL внутри Visual Studio в последних версиях. Это необходимо избегать проблем, связанных с бок о бок (Visual Studio 2012 против 2013 против SSMS), которые требуют обновления всех, чтобы использовать последний код.

    • Если у вас обновлен до последнего SSDT, вы найдете SqlPackage.exe и связанные DLL файлы в каталоге VS Install Directory\Common7\IDE\Расширения\Microsoft\SQLdb в Lazarus\DAC\130. Для VS2013 каталог установки VS C:\Program Files (x86)\Microsoft Visual Studio 12.0, а для версии VS2015 - 14.0.
  • SQL Server Management Studio (SSMS) и автономная Dac Framework MSI устанавливаются на общесистемное местоположение. Это C:\Program Files (x86)\Microsoft SQL Server\130\Dac\bin.

Ответ 2

В настоящее время существует официальный Microsoft.Data.Tools.Msbuild пакет NuGet, содержащий SqlPackage.exe и сообщение в блоге с подробностями:

Этот пакет NuGet содержит все необходимые компоненты для создания и публикации SQL-проектов (.sqlproj). Это поддерживает сценарии непрерывной интеграции и непрерывного развертывания. Проекты SQL могут быть построены на локальном агенте сборки без установки всех продуктов Visual Studio или SQL Server Data Tools (SSDT).

Ответ 3

SSDT устанавливает DLL Dac внутри Visual Studio в последних версиях. Это необходимо избегать проблем, связанных с бок о бок (Visual Studio 2012 против 2013 против SSMS), которые требуют обновления всех, чтобы использовать последний код. Если вы обновили до последнего SSDT, вы найдете SqlPackage.exe и связанные с ним библиотеки DLL в каталоге установки Windows\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\130. Для VS2013 каталог установки VS - это C:\Program Files (x86)\Microsoft Visual Studio 12.0 и 14.0 для VS2015. SQL Server Management Studio (SSMS) и автономная платформа Dac Framework MSI устанавливаются в общесистемное местоположение. Это C:\Program Files (x86)\Microsoft SQL Server\130\Dac\bin.

** Анс г-на Кевина Куньяна. это правильный процесс, но если база данных в sql2016 использует 140\dac **