2012-05-03 12 views
3

私たちは、最初に導入されて以来、いくつかの社内または単一顧客のプロジェクトにVisual Studio 2010のデータベースプロジェクトを使用してきました。今では、任意の顧客サイトにインストールするためにパッケージ化する必要がある「箱入りの」製品を初めて使用しています。VSDBCMDを使用せずにVS2010データベースプロジェクトを展開しますか?

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

これは本当にこのタスクを達成する最も簡単な方法ですか?私たちは最初のベータテストでこれをやっていますが、これまでのところ、良い長期的な展開戦略ではなく、素早いハックのように思えます。特に、ソフトウェアをインストールする前に SQL Server CE 32ビットとSQL Server CE 64ビットの両方をインストールする必要があります。 1つまたは他のアーキテクチャからアセンブリが欠落していたため、MSI内で必要なものをパッケージ化しようとするすべての試みが失敗しました。

ビルド時にプロジェクトを展開する際に出力される出力ファイルsqlcmdが出荷されましたが、内部開発サーバーのハードコードされたサーバー名が含まれています(SQLCMDデータベース名のような変数です)。つまり、サーバーのインストール時に.sqlスクリプトを編集する必要がありました。繰り返しますが、それは機能しますが、一般的には悪い考えです。

最終的なアプローチと、私が何か恩恵を払うことができない場合の生産のためにやることは、展開出力に基づいて手動でスクリプトを作成してアップグレードし、 (SqlClientまたはsqlcmdまたはこれに類するものを介して)スクリプトを実行するインストーラは、ユーザーの操作に基づいていますが、これはデータベースプロジェクトの目的の多くを打ち負かしているようです。

2つのバージョンのSQL CEをインストールし、Visual Studioをインストーラと共に出荷することを含まない、異なるサーバーへの自動展開のためにVS2010 DBプロジェクトをビルドおよびパッケージ化する他の方法はありますか?

+0

こんにちはマイケル!とにかく私の答えは助けになりましたか? –

+0

よく、sortofという意味で、データベースプロジェクトは外部に展開するために構築されたものではないという結論に達しました。 –

答えて

1

私が知る限り、あなたが最初に提案したものがおそらく最も良いでしょう。

マイクロソフトでは、Visual Studioを使わずにビルドサーバーにvsdbcmdをインストールする方法をお勧めしているので、最初からこれを知っていたようです。この考え方を簡単に拡張して、顧客サイトにインストールすることができます。

出力ファイルを作成してポストビルドプロセスを実行する独自の方法を考え出すことができましたが、その複雑さをどこか別の場所に移し、メンテナンスが必要な別のコードを作成しました。

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

私はこのSO質問に、関連するMSの記事と同様、このへの質問とリンクを答え:
Can I do database deployments, without installing Visual Studio or VSTSDB?

+0

実際、SQL CEインストーラはそれほど大きくはありませんが、顧客のIT部門に対して、なぜ1つのアプリケーションに* 3 *バージョンのSQLがインストールされている必要があるのか​​を正当化するのは難しいです。それは基本的にはこれを行う良い方法がないように見えるので、これは私が得る最高の答えです。 –

関連する問題