VS2010 C#.NET 3.5とアプリケーション設定(Settings.settingsファイル)を使用しています。私がやりたいのは、デバッグモードをチェックする条件付きステートメントでコードを散らかすことなく、開発環境と本番環境で異なる設定を行うことです。この問題への一般的なアプローチは何ですか?
7 に答える
または、個別の構成ファイルを作成して呼び出すこともできます。
リリース設定
デバッグ設定
次に、適切な .config ファイルを Settings.Settings にコピーする条件付きビルド イベントをセットアップします。
if $(ConfigurationName) == Debug xcopy debug.settings settings.settings
if $(ConfigurationName) == Release xcopy release.settings settings.settings
Web 配置プロジェクトを使用する場合は、web.config のさまざまな部分が置き換えられるように設定できます。詳細については、http: //weblogs.asp.net/scottgu/archive/2005/11/06/429723.aspx を参照してください。
私が現在の仕事で実際に採用している別のアプローチは、環境ごとに 1 つの複数の web.config ファイルを用意することです (例: web.config、web.config.production)。次に、展開用にビルドするときに、msbuild を使用して web.config.production を web.config として自動的にスワップします。
設定の値を意味すると仮定すると、これを行う最善の方法は、すべての運用環境の値を設定ファイルのコメントに入れることだと思います。または、アプリケーションのデプロイ時にのみ設定します。
それがあなたが求めているものである場合、.Netにはこれに対する実際の組み込みメカニズムはありません。
私の現在の仕事では、特定の環境に合わせてすべての値を正しく設定する小さなコマンドライン ツールがあります。構成はデータベースで行われます。
以前の仕事では、構成ファイルを配置ディレクトリにコピーすることはなく、必要に応じて手動でファイルを変更していました。
本番システムで web.config ファイルを上書きすることはありません。追加の設定/キーが追加された場合は、公開時にそれらを貼り付けます。
次のように、ビルドプロセスに条件付きでアイテムを含めることができます
<ItemGroup Condition=" '$(Configuration)' == 'Debug' " ...
これは xxx.config ファイルの欠如だと思います。そのため、アプリケーションがインストール/実行される各マシンで異なる構成で使用できる独自の構成マネージャーを使用します。
NAnt スクリプトを使用してソリューションを構築し、構成ファイルの設定値を置き換え、テストを実行して公開します。
一度か二度セットアップすれば、かなり簡単です。