回答:
これは、Visual Studio 2010の新しいWeb.config変換機能です。詳細については、こちらをご覧ください。
編集:
これらのファイルは、デバッグとリリース固有の設定を指定するために使用されるので、メインのweb.configを散らかしませんか?
3つのファイルに限定されず、(理論的には)環境と同じ数のファイルを作成できます。「トップレベル」のWeb.configは、Web構成のテンプレートを提供します。その下のファイルは、その環境に固有の置換値を提供します(ローカル/ステージ/テスト/その他の接続文字列が異なる場合など)。
デバッグとリリースのweb.configsにそれぞれローカルとリモートの接続文字列がある場合、ルートのweb.configファイルに接続文字列を配置しても意味がありますか?
環境間で変化しない場合にのみ意味があります。あなたの場合はそのように聞こえますが、あなたの場合はいいえ、それをWeb.configに残しておくのは意味がありません。
これらはWeb.config変換ファイルです。Visual Studioを使用したASP.NET Web配置から:Web.configファイル変換:
Web.configファイル設定の変更プロセスを自動化するには、Web.config変換とWeb配置パラメーターの2つの方法があります。Web.config変換ファイルには、展開時にWeb.configファイルを変更する方法を指定するXMLマークアップが含まれています。 特定のビルド構成および特定のパブリッシュプロファイルに異なる変更を指定できます。デフォルトのビルド構成はデバッグとリリースであり、カスタムビルド構成を作成できます。公開プロファイルは通常、宛先環境に対応しています。
誰かが興味を持っている場合のために、環境ごとに動的な接続文字列を持つように私が書いたものを次に示します。接続文字列の変更を気にすることなく、コードを任意の環境(Dev、Test、Pre-Prod、Prod ...)にデプロイしたかったのです。Asp.Net MVC 4でこれを行うための良い方法を本当に見つけることができなかったので、環境ごとにプロパティファイルに依存する独自の方法を考え出しました。
より良い解決策があるかもしれません、私はWicket / Javaのバックグラウンドから来て、最近MVC 4で開発を始めたので、より良い解決策が存在する可能性があります。しかし、ここに動的接続文字列に対する私の質問と回答へのリンクがあります:
それはVSで長く必要なものでした。残念ながら、実装に問題があるようです。たとえば、次のシナリオを検討してください(VS.2010 Ultimate、すべてSP):
Web.Config
Web.Release.Config
Web.Debug.Config
アプリケーションを実行すると、次のエラーが発生します。
接続名 'test'がアプリケーション構成で見つからなかったか、接続文字列が空です。
つまり、接続文字列要素はRelease / Debugデザイナーファイルにあり、メイン(Web.config)ファイルの構成要素によって使用されるため、解決できません。
test
、デバッグ構成ファイルとリリース構成ファイルの両方で接続文字列が指定されている場合は、適切なセクションがテンプレート化されたメインのweb.configにあるはずです。現状では、コードを複製しています。これはテンプレートが解決するはずのものです。
xslt
置換コマンドが必要です。これらの変換ファイルについての混乱に追加するもののために5つの賛成票を取得することでうまくいきました :)