デバッグビルドとリリースビルド用に異なる構成ファイルを持つ.NETアプリケーションがあります。たとえば、デバッグapp.configファイルは開発用を指します。SQLサーバーデバッグが有効になっており、リリース ターゲットがライブ SQL Server を指しています。他の設定もあり、その一部はデバッグ/リリースで異なります。
現在、2 つの個別の構成ファイル (debug.app.config と release.app.config) を使用しています。プロジェクトには、リリース ビルドの場合は release.app.config を app.config にコピーし、それ以外の場合は debug.app.config を app.config にコピーするというビルド イベントがあります。
問題は、アプリケーションが settings.settings ファイルから設定を取得するように見えるため、Visual Studio で settings.settings を開く必要があり、設定が変更されたというメッセージが表示されるので、変更を受け入れ、settings.settings を保存し、正しい設定を使用するために再構築する必要があることです。
同様の効果を達成するためのより良い/推奨される/好ましい方法はありますか? または、同様に、私はこれに完全に間違ったアプローチをしており、より良いアプローチはありますか?
ベストアンサー1
環境によって異なる可能性のある設定は、機械レベル、ではなくアプリケーションレベル。(構成レベルに関する詳細情報。)
これらは、通常、マシン レベルで保存する構成要素の種類です。
各環境(開発、統合、テスト、ステージ、ライブ)に独自の設定がある場合、c:\Windows\Microsoft.NET\Framework64\v2.0.50727\CONFIGディレクトリを作成すれば、アプリケーションコードビルド後の変更なしで環境間で転送できます。
そして当然ながら、マシンレベルのCONFIGディレクトリの内容は、アプリとは別のリポジトリまたは別のフォルダ構造でバージョン管理されます。.configファイルをよりソース管理しやすいものにするには、次のものを賢く使用してください。configソース。
私は7年間、25社以上の企業で200以上のASP.NETアプリケーションでこれをやってきました。(自慢するつもりはありませんが、このアプローチがうまく機能しない状況を見たことがないことをお伝えしたいのです。しない仕事。)