私たちは、最初に導入されて以来、いくつかの社内または単一顧客のプロジェクトに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プロジェクトをビルドおよびパッケージ化する他の方法はありますか?
こんにちはマイケル!とにかく私の答えは助けになりましたか? –
よく、sortofという意味で、データベースプロジェクトは外部に展開するために構築されたものではないという結論に達しました。 –