1

所以我创建了一个自定义跟踪侦听器,它继承自Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.CustomTraceListener.

跟踪侦听器是一个实用程序 dll,实用程序 dll 正在从utility.dll.config.

我正在使用LogWriterFactory("utility.dll.config")创建LogWriter.
当我在控制台应用程序中向我添加直接引用时,utility.dll一切正常。

但是如果我使用Assembly.LoadFrom("utility.dll")然后我得到以下错误:

The type 'Utility.CustomTraceListner, Utility' cannot be resolved.

如果我将utility.dll 添加到GAC,那么一切正常。我可以AppDomain.CurrentDomain.GetAssemblies()在上面的线上运行logWriterFactory.Create(),看看utility.dll已经加载了。

我什至可以AppDomain.CurrentDomain.CreateInstanceFrom("Utility.dll", "Utility.CustomTraceListener")在调用之前运行logWriterFactory.Create()并获取实例而没有任何问题。

我们有一个使用的内部应用程序,Assembly.LoadFrom我们希望加载的每个程序集都有自己的配置文件/日志设置,这些设置与加载应用程序分开。

任何想法如何在不将其utility.dll放入 GAC 的情况下解决此问题?

我知道该utility.dll.config文件是正确的,因为当直接引用实用程序程序集时它工作正常。

4

1 回答 1

0

连接到 ResolveEventHandler 解决了这个问题。

http://msdn.microsoft.com/en-us/library/system.appdomain.assemblyresolve.aspx

于 2013-03-28T12:47:24.353 回答