1

次の SSDT プロジェクト構造があります。

DBCore プロジェクト: SQL Server エディション専用ではないすべてのオブジェクトが含まれます。

DBStandardEdition プロジェクト: すべての標準版固有のオブジェクトが含まれます。

DBStandardedition プロジェクトは、「同じデータベース」オプションを使用して DBCore プロジェクトを参照します。

Visual Studio を介して DBStandardEdition プロジェクトをデモ サーバーに直接公開すると、すべてが機能します。すべての標準版関連オブジェクトが正しく作成されます。

Visual Studio のスキーマ比較ツールを使用して、デモ サーバー上のデータベースを dacpac ファイルと比較すると、ツールは、DBStandardEdition プロジェクト内で定義したすべてのオブジェクトを削除しようとします。DacServices - クラス (DacServices.Deploy) を使用して dacpac ファイルを公開するプログラムもあります。このプログラムは、DBStandardEdition.dacpac ファイルで定義されているすべてを実際にドロップします。

ここで何か間違ったことをしていますか、それともバグですか?

更新 プロジェクトの設定に問題があることがわかりました。すべてのデータベース プロジェクトの「ビルド出力ファイル名」を同じ値に設定しました。これを変更した後、Visual Studio は 2 つの DacPac - ファイルを DBStandardEdition\Bin\Release フォルダーに生成します。DBCore.dacpac および DBStandardEdition.dacpac。Visual Studio の比較ツールを使用して DBStandardEdition.dacpac をデータベースと比較すると (そして [複合オブジェクトを含める (データベース ターゲットのみ)] オプションを有効にすると)、すべて問題ないように見えます。DBCore プロジェクトに新しく追加されたオブジェクトは「追加」で一覧表示されます。DBStandardEdition プロジェクトのすべてのオブジェクトはまだそこにあります。展開オプション「複合オブジェクトを含める...」をアクティブにすると、すべてが正常に展開されます。

4

1 に答える 1