我正在设计一个 ASP.NET MVC4 Web App 项目。在我的项目的根目录中,我有一个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>
只是为了澄清相对路径,我现在有两个 Web.config 文件,一个 at./Web.config和一个 at ./Areas/PackageName/Web.config。
在我的包中,我想检索dirEnabled. 为此,我拨打电话:ConfigurationManager.AppSettings["dirEnabled"]. 但是,这会引发错误。似乎只从./Web.config我的包配置文件而不是从我的包配置文件中检索 appSettings 的集合。是否有可能从我的包的配置文件而不是项目根配置文件中获取 appSettings 集合?