9

Visual Studio 2010データベースプロジェクトを使用して複数のデータベースインストールに変更を展開するシナリオがありますが、特定のデータベースでは、そのコピーから一連のビューを除外したいと考えています。ビルド構成を使用して、これらのビューをデプロイから除外する方法はありますか?

4

2 に答える 2

7

最終的に、デプロイ中に触れてはならないオブジェクトを指定する sqlcmd 変数を使用して制御される、カスタムのデプロイ プラン修飾子を作成しました。各データベース プロジェクト構成は、これらの変数の異なるセット (.sqlcmdvars ファイル) を参照する場合があります。これは、プロジェクト プロパティの [展開] タブで設定できます。

プラン修飾子は、デプロイメント プランを検査し、無視する必要があるオブジェクトを作成/変更/削除する手順を削除します。これを使用して、データ ファイル (さまざまなステージング環境で異なる名前を持つ)、いくつかのバックアップ テーブル、および DB プロジェクトに保持しないいくつかの種類のオブジェクト (ユーザー、ロール メンバーシップ、データベース レベルのアクセス許可) を無視します。この機能は、スキーマ比較構成 (無視されるオブジェクト タイプ) に似ています (ただし、よりきめ細かく) が、デプロイ中に機能します (VSDBCMD を使用する場合も同様です)。

「カスタム デプロイメント プランの修飾子を作成する」部分は大変な作業のように聞こえるかもしれませんが、実際には非常に単純で、学習とテストの部分を含めて 1 日もかかりませんでした。MSDNには非常に役立つウォークスルーがあります。

于 2011-04-19T09:24:04.353 に答える
6

複合プロジェクトを作成してみましたか?私はこのシナリオを自分で実装していませんが、次のことができるようです。

  1. すべてのデプロイメントに必要なコアオブジェクトで構成されるproject1を作成します。
  2. 一部のデプロイメントに必要なビューのセットで構成されるproject2を作成します。
  3. project2にproject1への参照を追加します。

したがって、project1をデプロイする場合、ビューは含まれず、project2をデプロイする場合、ビューとコアオブジェクトが含まれます。

次のMicrosoftリンクをご覧ください。特に「複合プロジェクトの使用と制限」というタイトルのセクション

http://msdn.microsoft.com/en-us/library/dd193405.aspx

于 2011-03-05T00:59:59.227 に答える