尝试把这个在你的web.config:
<appSettings file="externalSettings.config"/>
externalSettings.config是您要使用其他配置文件。
对于非web程序集,它查找AssemblyName.dll,其中AssemblyName对应于程序集名称。例如:如果你的程序集名称是Com.MyProject.Library1.dll
,那么它正在寻找的配置文件是Com.MyProject.Library1.dll.config
。
UPDATE: 我做了这方面的一些更多的研究,并且指出here“ConfigurationManager中会从被加载的AppDomain时加载的应用程序的配置文件中读取”。因此,如果您的web应用程序是从aspx代码中访问ConfigurationManager
,它将从web.config文件读取。
我认为最合适的解决方法就是我已经提供的解决方法,即使用appSettings
配置参数,该参数允许您为aspx应用程序和类库创建共享配置文件。
举个例子,在你共享的配置文件,你会想是这样的:
<appSettings>
<add key="Key1" value="test"/>
</appSettings>
比方说,这个文件是c:\temp\shared.config
。然后在你的web.config文件,你可以参考这样的:
<appSettings file="C:\\temp\\shared.config"></appSettings>
你会把这同一线上的类库的App.config中。
现在你就可以使用:
ConfigurationManager.AppSettings["Key1"]
从您的aspx应用或类库,你会得到的值。
因此,如果您确实需要在aspx和类库中共享的“通用”配置参数,则可以这样做。
来源
2010-01-29 21:58:13
dcp
贵“somekey”是介于两者之间的appSettings>在您的项目.config文件? –
2010-01-29 21:59:39
是一个名为'project.config'或者'project.exe'应用程序旁边的'project.exe.config'文件吗?你真的不应该重命名app.config,因为它在编译时会自动更名为project.exe.config ..... – 2010-01-30 09:43:12
已将我的文件更改回app.config。重新编译我的C#项目(即我的Web项目引用),仍然在我的.aspx的代码隐藏中,它无法从我引用的项目的app.config – PositiveGuy 2010-02-01 03:50:07