1

SQLServerデータベースを利用するVisualStudio2010で開発しているアプリケーションがあります。そのため、私はVS SQLServer2008データベースプロジェクトを使用しています。

データベースプロジェクトには、データベースの構築に使用されるターゲット接続が必要です。

問題:

このプロジェクトは、開発者チームとビルドサーバーのソース管理下にあります。一部の開発者は'08SQLServerインスタンスに名前を付けていますが、他の開発者はデフォルトのインスタンスを持っています。'local'構文を使用するという考えだけでは不十分です。

ソース管理の外部でデータベースプロジェクト接続を構成する機能が必要です。データベースプロジェクトがSQLコマンド変数ファイルを提供していることがわかりますが、これは私が求めているものですか?

この問題に対応するためのベストプラクティスのアプローチは何ですか?

ビルドサーバーの一部としてMSBuildを使用しています-このアプローチはMSBuildにどのように適合しますか?

4

2 に答える 2

4

Visual Studio 2010 データベース プロジェクトのプロパティの [展開] タブには、[展開設定の構成:] というラベルの付いたドロップダウンが含まれています。このドロップダウンには、「My project settings」と「My isolated development environment」の 2 つのオプションがあります。この設定により、ローカルの開発設定と、.dbproj ファイルに保存されるプロジェクト設定を分離できます。

あなたのシナリオでは、現在「マイプロジェクト設定」に割り当てられている「ターゲット接続」をクリアしてからリポジトリに送信すると、共有接続設定が解除されます。 また、「ターゲット データベース名:」設定をクリアして、ビルド プロセスに値の指定を制御させることもできます。 これが完了すると、開発者は自由に「分離された開発環境」を選択し、リポジトリにコミットせずに接続設定を構成できますが、そこにデプロイできます。

msbuild.exe {projectName}.dbproj /target:Deploy /property:TargetDatabase={targetDatabaseName};TargetConnectionString="{targetConnectionString}" 必要に応じて、"この値を提供するためにプロジェクトを優先する TargetDatabase" プロパティ。

于 2010-08-19T17:10:13.367 に答える
2

SQL Server の任意のインスタンスのエイリアスを設定できます。そうすれば、誰もが「ローカル」だけでなく「エイリアス」をターゲットにすることができます。

エイリアスの設定方法に関する情報は、 https ://serverfault.com/questions/60738/how-to-create-an-alias-for-a-named-sql-server-instance で確認できます。

于 2010-08-13T17:51:45.517 に答える