web-dev-qa-db-ja.com

Web.Debug.configおよびWeb.Release.Configファイルは何のためにありますか?

Visual Studio 2010およびMVC 2.0にアップグレードしたばかりですが、Web.configに2つの追加ファイルが添付されていることに気付きましたか?これらのファイルはデバッグを指定し、特定の設定をリリースするために使用されるので、メインのWeb.configが乱雑になりませんか?

デバッグおよびリリースWeb.configsにそれぞれローカルおよびリモートの接続文字列がある場合、ルートWeb.configファイルに接続文字列を配置しても意味がありますか?

ありがとう!

106
chobo

これは、Visual Studio 2010の新しいWeb.config変換機能です。 詳細はこちら


編集:

これらのファイルはデバッグとリリース固有の設定を指定するために使用されるので、メインのweb.configが乱雑になりませんか?

3つのファイルに限定されるものではなく、(理論的には)環境と同じ数のファイルを持つことができます。 「トップレベル」のWeb.configは、Web設定のテンプレートを提供します。その下のファイルは、その環境に固有の置換値を提供します(local/stage/test/whateverに異なる接続文字列がある場合など)。

デバッグおよびリリースweb.configsにそれぞれローカルおよびリモートの接続文字列がある場合、ルートweb.configファイルに接続文字列を配置しても意味がありますか。

環境間で変更しない場合にのみ意味があります。あなたの場合はそうであるように聞こえますが、あなたの場合はいいえ、Web.configに残すことは意味がありません。

94
R0MANARMY

これらはWeb.config変換ファイルです。から Visual Studioを使用したASP.NET Web Deployment:Web.config File Transformations

Web.configファイルの設定を変更するプロセスを自動化するには、Web.config変換とWeb配置パラメーターの2つの方法があります。 Web.config変換ファイルには、Web.configファイルの展開時の変更方法を指定するXMLマークアップが含まれています。特定のビルド構成および特定の公開プロファイルに対して異なる変更を指定できます。デフォルトのビルド構成はデバッグとリリースであり、カスタムのビルド構成を作成できます。通常、公開プロファイルは宛先環境に対応しています。

10
eKek0

誰かが興味を持っている場合に備えて、環境ごとに動的な接続文字列を作成するために作成したものを次に示します。接続文字列の変更を心配することなく、コードを任意の環境(開発、テスト、事前製品、製品...)にデプロイしたかった。 Asp.Net MVC 4でこれを行う良い方法を見つけることができなかったので、環境ごとにプロパティファイルに依存する独自の方法を思いつきました。

より良い解決策があるかもしれません。私はWicket/Javaのバックグラウンドから来て、最近MVC 4で開発を始めたので、より良い解決策が存在する可能性があります。しかし、動的な接続文字列に関する私の質問と回答へのリンクは次のとおりです。

Asp.net MVC 4動的接続文字列

1
eaglei22