クライアントマシンにdacpacをデプロイする.Netアプリケーションを開発しています。そのためには、dacpacを展開するためにSqlPackage.exeが必要になります。クライアントのマシン構成に関係なくアプリケーションを機能させるには、SqlPackage.exeの絶対パスが必要です。
これを達成するのを手伝ってくれませんか。
ありがとう、Yogesh
_sqlpackage.exe
_は、次の2つの方法でインストールできます。
VS Install Directory\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\{SqlVersion}
_、VSインストールディレクトリ:C:\Program Files (x86)\Microsoft Visual Studio {VsVersion}.0
C:\Program Files (x86)\Microsoft SQL Server\{SqlVersion}\Dac\bin
SqlVersion
は、SQL Server 2017の場合は_140
_、SQL Server 2016の場合は_130
_などです。
VsVersion
はVisualStudio 2017の_14
_です
詳細については この質問 をご覧ください。
プログラムでsqlpackage
を見つけるには、 TaskModuleSqlUtility powershell library を利用できます。 PowerShellスクリプトからInvoke-DacpacDeployment
を実行するか(C#ではありません)、sqlpackage.exeパスにGet-SqlPackageOnTargetMachine
関数を使用します。
github でテストを検索してサンプルを探します。