1

C#コンソールアプリケーションで外部構成ファイルから値を読み込むための多くの解決策がありますが、特定の状況に対する解決策が見つかりません。

  1. 展開の理由により(主に、これはVisual Studio WebPublishメソッドを使用してMVCWebサイトの一部として展開用にパックされたコンソールアプリケーション用です)、exeはapp.configファイルと一緒にパッケージ化されません。

  2. 私はConfigurationManager.AppConfig["blah"]構文を使用するライブラリに依存しており、自分のAppSettingsSectionをこれらのライブラリにうまく渡すことができません。

コンソールアプリケーションの.exeファイルはMVCアプリのbinディレクトリにあります。Webサイトとコンソールアプリの両方が同じ構成値を使用するため、サイトのWeb.configファイルをコンソールアプリにロードしようとしましたが、これを行う方法が見つかりませんでした。

4

1 に答える 1

1

がロードされると、デフォルトの構成ファイルがロードさAppDomainれます。コンソール アプリケーションの場合、構成ファイルは実行可能ファイルと同じ場所に配置する必要があります。

考えられる解決策の 1 つAppDomainは、 をコンソール アプリケーションの子としてロードし、AppDomainSetup.ConfigurationFileプロパティを正しく設定してカスタムの場所から構成ファイルをロードし、コンソール アプリケーション全体のロジックを child 内で実行することだと思いますAppDomain

この場合、このオーバーロードを使用できますAppDomain.CreateDomain(MSDN の記事には、 を提供する方法に関するサンプル コードが含まれていますAppDomainSetup)。

私の知る限り、実行可能AppDomainファイルがロードされた後に構成ファイルを探すデフォルトの動作を変更することはできませんが、提案したようにAppDomain、独自の要件で独自のファイルを作成できます!

于 2013-03-13T15:53:01.110 に答える