web-dev-qa-db-ja.com

SqlPackage.exeを使用してDACPACをSQL Server 2014に公開しますか?

SQL Server Data ToolsによってインストールされたSqlPackage.exeを使用して、DACPACをSQL Server 2008-2012インスタンスに正常に公開しています(通常、C:\Program Files (x86)\Microsoft SQL Server\110\DAC\binにあります)。ただし、この同じSqlPackage.exeを使用して2014をターゲットにしたDACPACをSQL Server 2014インスタンスに発行しようとすると、次のようになります。

*** 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の[発行]コマンドを使用して、この同じインスタンスに発行できるので、インスタンス自体が問題のようには見えません。

2014 DACPACの2014サーバーへの公開をサポートするSqlPackageの新しいバージョンはありますか?または、これを行う別のスクリプト可能な方法はありますか?

28
Nick Jones

はい、SQL Server 2005-2016をサポートする新しいバージョンが利用可能であり、以前の(SQL Server 2012以前の)バージョンとは異なる場所にインストールされます。実際、SSDTを使用するか、SSMSまたはスタンドアロンインストーラーの一部としてインストールするかによって、インストール場所が異なります。

  • SSDTは、最新リリースのVisual Studio内にDac DLLをインストールします。これは、最新のコードを使用するためにすべてを更新する必要があるサイドバイサイドの問題(Visual Studio 2012と2013とSSMS)を回避するためです。

    • 最新のSSDTに更新された がある場合、SqlPackage.exeと関連DLLがVS Install Directory\Common7\IDE\Extensions\Microsoft \にあります。 SQLDB\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です。

55
Kevin Cunnane

現在、公式の Microsoft.Data.Tools.Msbuild SqlPackage.exeを含むNuGetパッケージと、詳細が記載された ブログ投稿 があります。

このNuGetパッケージには、SQLプロジェクト(.sqlproj)のビルドと公開に必要なすべてのコンポーネントが含まれています。これにより、継続的な統合と継続的な展開シナリオがサポートされます。VisualStudioやSQL Server Data Tools(SSDT)製品を完全にインストールしなくても、ローカルビルドエージェントでSQLプロジェクトをビルドできます。

9
Jason

SSDTは、最新リリースのVisual Studio内にDac DLLをインストールします。これは、最新のコードを使用するためにすべてを更新する必要があるサイドバイサイドの問題(Visual Studio 2012と2013とSSMS)を回避するためです。最新のSSDTに更新した場合は、VS Install Directory\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\130にSqlPackage.exeと関連DLLがあります。 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です。

**ケビン・クナン氏の回答。正しいプロセスですが、sql2016のデータベースが140\dacを使用している場合**

1
Deb Kumar Roy