私の好みは、プロジェクト固有の構成ファイルをソース管理にチェックインするのではなく、環境変数の内容とその他の構成要素を共通フォルダー (ソース管理内) に保持することです。次に、構成ファイルは、特定のプロジェクト、ソリューション、環境が特定の時点で必要とするものに応じて、ローカル ビルド、ビルド自動化、または展開スクリプトの一部として生成されます。これは、必要に応じて、単純なテキスト ファイル、xml テンプレート、または Spark ビュー エンジンのようなより複雑なものを使用して実行できます。テンプレート化が必要以上に複雑な場合 (通常はそうです) は、規則に従ってこれを行うこともできます。このようにして、コードをデプロイする場所に関係なく、環境固有の構成を定義できます。
規則による例は、プライマリ構成ファイル (Web 構成、アプリ構成など) でカスタム構成セクションを定義することです。その後、connection-strings-development.config、connection-strings-integration.config、connection-strings-testing.config、connection-strings-pre-production.config、および connection-strings-production を保存できます。 config をプライマリ ソース (または共通フォルダー) に配置します。ビルド プロセスは、適切な接続文字列構成ファイルを削除し、名前を単純に connection-strings.config に変更します。
テンプレートで生成すると、同じ環境固有の構成ファイルを持つカスタム構成セクションも作成されますが、展開時に名前を変更する代わりに、基本構成ファイルのセクションを適切な構成ファイル名で直接書き換えることができます。
ただし、構成ファイルを環境ごとにまとめておくと、特に同じまたは類似の構成スタイルを使用する多くのサイトの管理を開始した場合に、大きな柔軟性が得られます。ただし、構成は、自動化された環境のいくつかの側面によって決定される必要があります。