2016-09-21 4 views
2

異なるデータベースバージョンをサーバー上で実行している複数のクライアントがあります。一部のクライアントはSQL Server 2008を使用していますが、一部のSQL Server 2012および一部のクライアントはSQL Server 2014を使用しています。dacpacファイルをすべて1つのビルドで作成する

Visual Studio 2015ソリューションにはSSDTプロジェクトがあります。

プロダクションデプロイメントでは、まずクライアントにそのバージョンに応じて&というSQL Serverバージョンを問い合わせ、適切な.dacpacファイルをクライアントに渡します。

それが唯一の選択「対象プラットフォーム」バージョン(SSDTプロジェクト]> [プロパティ]> [プロジェクト設定>ターゲットプラットフォーム)

  • た場合の出力フォルダ内の単一.dacpacファイルを作成しSSDTプロジェクトのビルドのたびにSQL Server 2008のは、ターゲットプラットフォームとして選択されている - 単一.dacpacファイルは、SQL Server用に作成された2008年のSQL Server 2012は、ターゲットプラットフォームとして選択されている場合

  • - シングル.dacpacファイルは、SQL Server用に作成された2012

"Target Platform"の設定を手動で変更せずに、すべてのバージョンに対して複数の.dacpacファイルを作成する方法はありますか?

プレ/ポストビルドイベントを使用するか、いくつかのEXEファイルを使用していますか?

ありがとうございました。

答えて

1

複数のバージョンを扱うプロジェクトが必要だったのと同じようなことがありました。私が管理していた方法は、サポートする最低バージョンに設定することでした(私は2007r2と2012だけが必要でしたので、 )。それから、私は "AllowIncompatiblePlatform"をtrueに設定しました。

もう1つの方法は、dacpacをzipファイルとして開くか、System.Packaging .net apiを使用してmodel.xmlのバージョンを変更することです。

私はまた、あなたはおそらくすでにあなたがあなたが展開しているデータベースを管理していないときを知っているいくつかの困難についてブログ:あなたはdacpac内のバージョンを変更することを決定した場合、私に知らせて

https://the.agilesql.club/blogs/Ed-Elliott/2016-09-20/Database-Deployments-Where-A-Customer-Manages-The-Database

どのように表示するかは、理想的ではないビルド段階をスキップすることを意味します。

エド

+1

互換性チェックは、2012年以降のSQL Serverインスタンスに2008のために構築されdacpacを展開について文句を言うべきではありません。 AllowIncompatiblePlatformは、下位レベルのシナリオを対象としています。 –

関連する問題