ASP.NET MVC4 Web アプリ プロジェクトを設計しています。私のプロジェクトのルートにはWeb.config、対応する要素を含む通常のデフォルト ファイルがあります。特に、いくつかのappSettings要素が定義されています。これを示すための抜粋の例として:
<appSettings>
<add key="foo" value="bar" />
</appSettings>
当然、コード内で を使用してこの要素にアクセスできますConfigurationManager.AppSettings["foo"]。これは私にとって完璧に機能します。ただし、プロジェクトと一緒に NuGet パッケージを作成しています。パッケージは、プロジェクトのディレクトリの下の独自のディレクトリにインストールされますAreas。ここでは、パッケージのルートに別のWeb.configファイルがあります。これは、別のユーザーが NuGet パッケージをインポートするときに、パッケージ リソースの構成がパッケージに対してネイティブになるようにするためです。パッケージWeb.configに次のものを含めます。
<appSettings>
<add key="dirEnabled" value="true" />
</appSettings>
相対パスに関して明確にするために、2 つの Web.config ファイルがあり、1 つは at で./Web.config、もう 1 つは at./Areas/PackageName/Web.configです。
パッケージ内で、 の値を取得したいと考えていますdirEnabled。そのために、次のように呼び出しますConfigurationManager.AppSettings["dirEnabled"]。ただし、これはエラーをスローします。./Web.configパッケージ構成ファイルではなく、appSettings のコレクションのみが取得されているように見えます。プロジェクトのルート構成ファイルではなく、パッケージの構成ファイルから appSettings コレクションを取得することはまったく可能ですか?