C#问题访问另一个项目的app.config

时间:2010-12-08 17:16:47

标签: c# app-config

我有两个项目,一个是应用程序(exe),另一个是库(dll)。我正在从应用程序动态加载库。我试图从DLL中访问exe的app.config。这是DLL的代码:

config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
object abc = config.Sections["MySection"];

如果我有从程序项目到库项目的引用,那么上面的代码工作正常。但是,如果我删除引用,我会得到一个System.IO.FileNotFoundException。

配置的HasFile属性为true,但似乎无法找到该部分或其他内容。所以我想也许它正在使用不同的aap.config,我尝试手动将app.config路径指定为OpenExeConfiguration,但我仍然得到同样的错误。

那么如何从DLL访问程序的app.config,而无需从程序项目中引用该DLL?

1 个答案:

答案 0 :(得分:2)

解决方案:

FileNotFoundException in Visual Studio Setup and Deployment Project when trying to load custom config

我必须将我的程序集添加到解析处理程序:

ResolveEventHandler tempResolveEventHandler =
(sender, args) => { return Assembly.LoadFrom(Assembly.GetExecutingAssembly().Location); };

AppDomain.CurrentDomain.AssemblyResolve += tempResolveEventHandler;
//access the app.config here
AppDomain.CurrentDomain.AssemblyResolve -= tempResolveEventHandler;