5

私のコンソールアプリケーションのappSettingsの一部を、たとえばsecrets.configという名前の外部設定ファイルから読み込みたいのですが、残りの部分はapp.config外部設定ファイルからappSettingsの一部を読み込みます

現在、私はこの設定を行っていますが、それはsecrets.configから読み取っていないようで、読み取りの失敗について私に知らせていないようです。私のコードでApp.configファイル

<appSettings> 
    <add key = "Secret" value = "Tiger" /> 
</appSettings> 

と同じフォルダ内にある私のApp.configファイルsecrets.configで

<appSettings file = "secrets.config"> 
    <add key = "Foo" value = "Bar" /> 
</appSettings> 

において

var secret = ConfigurationManager.AppSettings["Secret"]; 

// secret turns out to be null 
+0

可能な重複(http://stackoverflow.com/questions/16425407/configurationmanager-appsettingsを-use-another-config-file) –

+1

ええ、申し訳ありませんが、あなたはすでに、Qの答えに詳述されているアプローチの1つを採用していることに気づきました。 –

答えて

2

私は間違ったパスとして外部ファイルのパスを書き込んでいたことが判明しました。ドキュメントon this pageから

指定されたパスは、メインの設定ファイルへの相対パスです。 Windows Formsアプリケーションの場合、アプリケーション構成ファイルの場所ではなく、バイナリフォルダ(/ bin/debugなど)になります。 Webフォームアプリケーションの場合、パスはweb.configファイルがあるアプリケーションルートからの相対パスです。

私はそれで次のパスを変更するには、働いていた:[ConfigurationManager.AppSettings別の設定ファイルを使用する]の

<appSettings file = "..\..\secrets.config"> 
</appSettings> 
+1

同じことが私のために働いていました。 app.SECRETS.configがapp.configに隣接している場合つまり、 '' –

+0

パーティーに少し遅れましたが、ファイルをコピーするようVisual Studioに指示してパスを変更せずに動作させることができましたビルド時の出力フォルダこれは、ソリューションエクスプローラ>プロパティでファイルを右クリックし、次に出力ディレクトリにコピー=新しい場合はコピー、または常にコピーすることで行います。 –

関連する問題