ビルド コントリビューターおよび配置コントリビューターを利用してデータベースのビルドおよび配置をカスタマイズする
Visual Studio には、データベース プロジェクトにおいてビルドおよび配置アクションの動作を変更するために使用できる拡張ポイントが用意されています。 それらの拡張ポイントは、どのようなデータベース スキーマ プロバイダー (DSP) の実装にも適用できるように定義されています。
使用可能な拡張ポイント
次の表に示す拡張ポイントについて、拡張機能を作成できます。
アクション |
コントリビューターの種類 |
説明 |
---|---|---|
ビルド |
BuildContributor |
この拡張機能の種類は、プロジェクト モデルの検証が完了した後でデータベース プロジェクトをビルドするときに実行されます。 ビルド コントリビューターは、ビルド タスクのすべてのプロパティおよびカスタム引数に加え、完成したモデルにもアクセスできます。 |
配置 |
DeploymentPlanModifier |
この拡張機能の種類は、配置計画が作成された後、その実行前に、配置パイプラインの一環としてデータベース プロジェクトを配置するときに実行されます。 DeploymentPlanModifier を使用して、ステップの追加や削除によって配置計画を変更できます。 配置コントリビューターは、配置計画、比較結果、およびソース モデルとターゲット モデルにアクセスできます。 |
Deploy |
DeploymentPlanExecutor |
この拡張機能の種類は、配置計画の実行時に実行され、配置計画への読み取り専用アクセスを提供します。 DeploymentPlanExectutor は配置計画に基づくアクションを実行します。 |
サポートされる機能拡張シナリオ
ビルド コントリビューターまたは配置コントリビューターを実装することにより、次のサンプル シナリオを実現できます。
プロジェクトのビルド中にスキーマ ドキュメントを生成する
このシナリオをサポートするには、BuildContributor を実装し、OnExecute メソッドをオーバーライドして、スキーマ ドキュメントを生成します。 OnPopulateArguments メソッドをオーバーライドすることにより、拡張機能を実行するかどうかを制御する既定の引数を公開し、出力ファイルの名前を指定できます。データベース プロジェクトを配置するときに差分レポートを生成する
このシナリオをサポートするには、データベース プロジェクトを配置するときに XML ファイルを生成する DeploymentPlanExecutor を実装します。配置計画においてデータの移動が発生する時点を変更する
このシナリオをサポートするには、DeploymentPlanModifier を実装し、配置の再生を繰り返します。 計画の SqlTableMigrationStep ごとに比較結果を調べ、そのステップを実行するかスキップするかを決定します。データベース プロジェクトを配置するときにファイルをビルド出力フォルダーにコピーする
このシナリオをサポートするには、配置コントリビューターを実装し、OnEstablishDeploymentConfiguration メソッドをオーバーライドして、(プロジェクト システムによって) DeploymentConfigurationExtension とマークされたファイルのうちどれを出力フォルダーにコピーするかを指定します。 複数のファイルを 1 つの新しいファイルに結合し、それを出力フォルダーにコピーして配置マニフェストに追加するように、コントリビューターを変更することもできます。
さらに、コントリビューターからカスタマイズされた名前/値引数のペアを公開し、データベース プロジェクト ファイルに書き込むこともできます。 これらの引数を使用すると、コントリビューターが MSBuild から情報を抽出でき、またコントリビューターのエンド ユーザーは動作をカスタマイズできます。 たとえば、ユーザーが入力ファイルや出力ファイルの名前を指定できるようにすることも可能です。
一般的なタスク
一般的なタスク |
関連する参照先 |
---|---|
拡張ポイントの詳細を理解する: ビルド コントリビューターおよび配置コントリビューターの実装に使用する基本クラスについて説明します。 |
|
サンプル コントリビューターを作成する: ビルド コントリビューターまたは配置コントリビューターの作成手順について説明します。 これらのチュートリアルを実行することにより、次のタスクの手順を習得できます。
コントリビューターをチームに配布する方法に応じて、すべてのコントリビューターを単一のアセンブリ内に作成することも、複数のアセンブリに分けて作成することもできます。 |
|
ビルド コントリビューターおよび配置コントリビューターをチーム メンバーに配布する: コントリビューターを動作確認のうえチームに配布できます。 拡張機能を手動でインストールし、登録するようチームの各メンバーに伝えるか、簡単な専用セットアップ プログラムを作成します。 |
関連するシナリオ
カスタムのデータベース リファクタリングの種類またはターゲットの作成
カスタム データ ジェネレーターを使用した特殊なテスト データの生成