質問

サードパーティの 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 を区別するのはなぜですか?何かご意見は?

役に立ちましたか?

解決

を実行可能ファイル:

いくつかの.NET実行ファイルは同じディレクトリに生きることができます。同じディレクトリに同じ名前の2つのファイルが存在することができないので、アプリケーションは、メインコンフィギュレーションファイルに別の名前を使用する必要があります。 applicationName.exe.config方式は、これを解決します。

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

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

幸いなことに、唯一のWebプロジェクトは、単一のディレクトリからホストすることができ、その唯一のメインの設定ファイルはここに住んでしようとしています。これは、慣例により選ばれるメインの設定ファイル名を可能にし、そのファイル名がweb.configことを起こるます。

他のヒント

web.config Web サイトと Web アプリケーション専用です。それは固定されたままです、つまり名前は変わりません。それはいつも呼ばれます web.config.

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

なぜ Microsoft は 2 つの異なる種類の名前を使用することにしました - 私にはわかりません - Microsoft に問い合わせてください。

したがって、基本的に必要なのは、自分が何を扱っているのかを理解し、正しい場所に情報を提供することだけです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top