3

Visual Studio 2010のデータベースプロジェクトは、最初に導入されて以来、いくつかの内部プロジェクトまたは単一顧客プロジェクトに使用されており、これまでのところ非常にうまく機能しています。現在、任意の顧客サイトにインストールするためにパッケージ化する必要がある「ボックス化された」製品で初めてそれらを使用しています。

これまで見てきたことはすべて、.dbschemaファイルとvsdbcmdツールおよびその要件をMSIの一部として出荷し、インストールの一部としてそのツールを起動することを示唆しています。

これは本当にこのタスクを達成するための最も簡単な方法ですか?私たちは最初のベータテストのためにこれを行っていますが、これまでのところ、それは優れた長期的な展開戦略というよりは、迅速なハックのようです。特に、ソフトウェアをインストールする前に、SQL ServerCE32ビットとSQLServerCE64ビットの両方をマシンにインストールする必要があります。いずれかのアーキテクチャからアセンブリが欠落していたため、MSI内で必要なものをパッケージ化するすべての試みが失敗しました。

sqlcmdもう1つ調べたのは、ビルド時にプロジェクトを「デプロイ」したときに生成される出力ファイルを出荷することでしたが、それらには、内部開発サーバーのハードコードされたサーバー名が含まれています(データベース名のようなSQLCMD変数ではありません)。 is)は、サーバーのインストール中に.sqlスクリプトを編集する必要があることを意味します。繰り返しますが、それは機能しますが、一般的には悪い考えのようです。

私たちの最後のアプローチ、そして私が何かより良いものを思い付くことができない場合に私たちが本番環境で行う可能性が高いことは、デプロイメント出力に基づいて手動で作成およびアップグレードスクリプトを作成し、実行するインストーラーにカスタムツールを含めることですユーザーの操作に基づくスクリプト(SqlClientまたは類似のもの)ですが、これはデータベースプロジェクトの目的の多くを無効にしているようです。sqlcmd

2つのバージョンのSQLCEをインストールし、インストーラーと一緒にVisual Studioを出荷することなく、VS2010 DBプロジェクトをビルドして、さまざまなサーバーに自動展開するためのパッケージ化する方法は他にありますか?

4

1 に答える 1

1

私の知る限り、あなたが最初に提案したことはおそらく最良です。

vsdbcmdMicrosoftは、 Visual Studioを必要とせずにビルドサーバーにインストールする方法を推奨し、指示しているため、最初からこれを知っているようです。この考え方を簡単に拡張して、Customersサイトにインストールすることができます。

出力ファイルを作成し、それらに対してビルド後のプロセスを実行する独自の方法を思い付くことができますが、複雑さを別の場所に移動し、保守が必要な別のコードを作成しました。

SQL CEのインストーラーはそれほど大きくはなく、MSIの一部にすることで、物事をシンプルにまとめてパッケージ化し、データベースプロジェクトから最大限の機能を引き出すことができます。

私はこれと同様の質問に答え、関連するMSの記事にリンクしています。このSOの質問では
、Visual StudioまたはVSTSDBをインストールせずにデータベースの展開を行うことはできますか?

于 2012-07-14T12:55:36.457 に答える