所以我创建了一个继承自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
文件是正确的,因为直接引用实用程序程序集时它工作正常。
答案 0 :(得分:0)
连接ResolveEventHandler解决了这个问题。
http://msdn.microsoft.com/en-us/library/system.appdomain.assemblyresolve.aspx