2012-01-09 24 views
1

Visual Studio 2010データベースプロジェクトによって生成された展開スクリプトは、私のためには機能しません。私はそれらをアップグレードして新しいデータベースを作成するために多くの異なる顧客に出荷されるMSIに含める必要があります。Visual Studio 2010データベースプロジェクト用の展開スクリプトをカスタマイズする

Microsoft.Data.Schema ...名前空間を調べると、展開スクリプト、DeploymentScriptGenerator、ExtensionManagerなどの生成をカスタマイズするための多くの可能性があります。実際には、拡張可能で、データベース。

私が見つけることができないのは、「始める」ドキュメンテーションやサンプルです。誰もこれのような何かをしましたか?

答えて

0

Visual Studioデータプロジェクトでは、2段階の展開が使用されます。

データベースプロジェクトを構築することによって作成されたデプロイメントファイルは、実際にはデータベースの最終的な状態を示すメタデータパッケージですが、デプロイ先や新しいデータベース既存のデータベース。

2番目の部分は、既存または新規の特定のデータベースに対して実際に展開パッケージを実行しています。そのためには、データベースと展開パッケージに対してdiffを実行し、適用する必要がある変更を判断し、それらの変更を適用するのに必要なスクリプトを生成する必要があります。

MSIに最初の部分を含めると、フィールドに不明なデータベースが不明な箇所に変更を適用するために、エンドユーザーのマシン上で実行する必要があり、実際にVisual Studioを出荷します。

幸いなことにMSにはコマンドラインも含まれています(VSDBCMD.exe)ので、その単一の展開パッケージを使用してデータベースに変更を適用できます。このツールは、Visual Studioと同じ差分を実行し、そのデータベースを作成/アップグレードするために必要なSQLスクリプトを生成します(コマンドラインのparmae​​tersに基づいて選択すると実際にスクリプトを実行します)。コマンドラインから呼び出す方法については、http://msdn.microsoft.com/en-us/library/dd193283.aspxを参照してください。

私はあなたのアプリケーションでこのコマンドラインツールを出荷することを知っていました。(これは再配布ライセンスを再確認して、これが問題ないことを確認してください)MSIまたは他のユーティリティでカスタムアクションを実行してくださいそれを実行してデータベースの変更を適用します。また、コマンドラインツールの依存関係を確認するには、SQL SMOオブジェクト、SQLネイティブクライアント、およびおそらく他のいくつかのものが必要です。あなたはMSIにそれらが前提条件として含まれていることを確認したいでしょう。

+0

返信いただきありがとうございます。すでに顧客のサーバー上にデータベースを作成して更新するユーティリティを作成しました。数年前に創造しなければなりませんでした。さて、私たちは、データベースプロジェクトの使い方と、私たちのユーティリティに必要なことを理解しようとしています。私はVSDBCMDを見ましたが、REDIST.TXTにはリストされていないため、再配布できません。しかし、再配布できると主張するブログ記事はありますが、誤ったライセンスを読んでいる可能性があります。 –

+0

興味深いことに、それは明らかにVS 2008で実際に言及されました:http://blogs.msdn.com/b/gertd/archive/2008/08/22/redist.aspx、しかし私はVSのどこにも対応する情報が表示されません2010。 –

関連する問題