5

サードパーティの dll を使用しているときに、次の例外が発生しました。

スタンドアロン exe 内で実行していない場合は、exePath を指定する必要があります。

次のトレースで

System.Configuration.ConfigurationManager.OpenExeConfigurationImpl (ConfigurationFileMap fileMap、Boolean isMachine、ConfigurationUserLevel userLevel、String exePath)。

私が見つけた理由は、それが app.config を探していて、web.config で詳細を提供したためです。私の質問は、なぜ system.configuration が web.config と app.config を区別するのですか? 何かご意見は?

4

2 に答える 2

7

実行可能ファイル:

複数の .NET 実行可能ファイルを同じディレクトリに置くことができます。同じディレクトリに同じ名前のファイルが 2 つ存在することはできないため、アプリケーションはメインの構成ファイルに異なる名前を使用する必要があります。applicationName.exe.configスキームはこれを解決します。

Web アプリケーション / サイト:

.NET Web アプリケーションは DLL にコンパイルされ、Web サイトは通常、ジャストインタイムでコンパイルされます。したがって、これらのタイプのプロジェクトには「メイン エントリ ポイント」はありません。各ページが独自のアセンブリにコンパイルされる Web プロジェクトを作成することができます。メインアセンブリはどれですか?どのアセンブリにちなんで構成ファイルに名前を付ける必要がありますか?

幸いなことに、1 つのディレクトリからホストできる Web プロジェクトは 1 つだけであるため、ここには 1 つのメイン構成ファイルのみが存在します。これにより、メインの構成ファイル名を慣例で選択でき、そのファイル名はたまたまweb.config.

于 2010-01-15T13:06:37.953 に答える
6

web.configあなたのウェブサイトとウェブアプリケーション専用です。固定されたままです。つまり、名前は変更されません。それは常に呼び出されweb.configます。

app.configこれは、Web 以外のアプリケーション (Winforms、WPF、NT Services など) 用です。これはYourApplicationName.exe.config、プロジェクトをビルドするときに に名前が変更されます。アプリケーションのディレクトリでその名前の を見つけることはありませんapp.config(または、見つかったとしても、使用されません)。

Microsoft が 2 つの異なる種類の名前を使用する理由- 私にはわかりません - Microsoft に尋ねてください。

したがって、基本的には、何を扱っているかを知り、正しい場所に情報を提供するだけで済みます。

于 2010-01-15T11:40:20.963 に答える