2011-12-01 2 views
13

私はASP.Net MVC Webアプリケーションを作成しています。チームには、web.configファイルに異なる設定が必要な複数の開発者がいます。これらの設定は、データベース接続と、アクセスが必要なローカルのLinux仮想マシン用の設定です。将来追加する必要がある他のものがあります。ローカルの設定をソース管理に委ねることを心配せずに、各開発者がweb.configに独自のカスタム設定を持つために使用できる方法論とは何ですか?異なる設定で単一のweb.configを使用する複数の開発者

ローカル展開VS Webサーバーを介してサイトを実行しているため、展開構成が機能しません。私たちは、環境内のさまざまな段階に展開するための展開構成を使用します。

+2

...あなたのソースコントロールは? –

+0

@AustinSalonen私たちはgit –

+0

を使用していますが、web.config変換を試してみましたか? – frennky

答えて

7

config XMLファイルのほとんどのセクションでは、configSource attributeを使用できます。この属性を使用して、一般的にdev-modifiedセクションを別のファイルに格納しました。これらの一般的に変更されたセクションには、それぞれ別々の* .dev.configファイルと* .prd.configファイルがあります。 * .dev.configファイルは、ソースコントロール(git)によって無視されました。

運用環境では、* .prd.configファイルを使用するようにconfigSource属性を設定します。この場合も、2つの設定を最新の状態に保つ必要があります。私は、* .prd.configファイルと* .dev.configファイルを要素レベルで同期させておくソリューションを開発し始めましたが、完了までに時間がかかりませんでした。

+0

ええ、ファイルを同期させておくという課題は、残りの部分がとてもシンプルなので、私が対処したいことです。 –

4

これは最もハイテクな解決策ではないのですが、web.config "web.config.sample"を呼び出して、web.configをsvn:ignoreに追加するだけです。これにより、開発者は誤ってチェックインするのをやめます。

新しいキーがweb.configに追加されたときには、web.config.sampleで重複して覚えておく必要があります。

開発者が新しいコピーをチェックアウトするときには、このファイルの名前を変更して設定するだけです。私はいくつかの企業で働いており、毎回これを行ったので、実際にこれを行う方法が他にあるかどうかはわかりません。

編集:誰もweb.config.sampleを含むディレクトリのweb.configをチェックインしていないことを確認するために、事前コミットフックを設定することもできます。

編集#2:web.config.sampleが更新されたときに関係するすべての人に電子メールを送信するポストコミットフックを設定することもできます。そのため、設定キーが見つからないとアプリケーションが失敗しないようにします。私は将来これを行うつもりです。