CreateInstanceAndUnwrap无法在新的应用程序域中加载程序集

时间:2019-05-16 10:56:58

标签: c# mef appdomain

使用createInstanceFromUnWrap方法在新的应用程序域中加载程序集时,我们遇到了一些问题。

我为此问题(PFB)添加了实际代码和内部异常消息。但是我们怀疑此错误与程序集加载方法无关。请让我知道如何为appdomain创建实例获取异常以及解决此问题的方法。

var domainSetup = new AppDomainSetup   {
            CachePath = cache,
            ShadowCopyDirectories = drivers,
            ShadowCopyFiles = "true",
            ConfigurationFile = 
AppDomain.CurrentDomain.SetupInformation.ConfigurationFile,
            ApplicationBase = AppDomain.CurrentDomain.BaseDirectory
        };

domain = AppDomain.CreateDomain(domainName, 
AppDomain.CurrentDomain.Evidence, domainSetup);

Drivers = (T)domain.CreateInstanceFromAndUnwrap(dllPath, typeof(T).FullName);

错误 YYYYYYYY错误Exception:System.TypeInitializationException:'NLog.LogManager'的类型初始值设定项引发了异常。 ---> System.IO.FileLoadException:加载此程序集将产生与其他实例不同的授予集。 (来自HRESULT的异常:0x80131401)    在NLog.LogFactory..ctor()    在NLog.LogManager..cctor()    ---内部异常堆栈跟踪的结尾---    在NLog.LogManager.GetCurrentClassLogger()    在YYYYYYYY.YYYYYYYY.YYYYYYYY.YYYYYYYY..ctor()

在System.RuntimeTypeHandle.CreateInstance(运行时类型类型,布尔publicOnly,布尔noCheck,布尔&canBeCached,RuntimeMethodHandleInternal和ctor,布尔&bNeedSecurityCheck)    在System.RuntimeType.CreateInstanceSlow处(布尔publicOnly,布尔skipCheckThis,布尔fillCache,StackCrawlMark和stackMark)    在System.Activator.CreateInstance(Type type,Boolean nonPublic)    在System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr,活页夹活页夹,Object [] args,CultureInfo文化,Object [] activationAttributes,StackCrawlMark&stackMark)    在System.Activator.CreateInstance(类型类型,BindingFlags bindingAttr,活页夹装订器,Object [] args,CultureInfo文化,Object [] activationAttributes)    在System.Activator.CreateInstanceFromInternal(String assemblyFile,String typeName,Boolean ignoreCase,BindingFlags bindingAttr,活页夹活页夹,Object [] args,CultureInfo文化,Object [] activationAttributes,证据securityInfo)    在System.Activator.CreateInstanceFrom(String assemblyFile,String typeName,Boolean ignoreCase,BindingFlags bindingAttr,活页夹装订器,Object [] args,CultureInfo文化,Object [] activationAttributes)中    在System.Activator.CreateInstanceFrom(String assemblyFile,String typeName,Object [] activationAttributes)    在System.AppDomain.CreateInstanceFromAndUnwrap(String assemblyName,String typeName)    在System.AppDomain.CreateInstanceFromAndUnwrap(String assemblyName,String typeName)    在YYYYYYYY.YYYYYYYY.YYYYYYYY.YYYYYYYY.YYYYYYYY`1..ctor()    在YYYYYYYY.YYYYYYYY.YYYYYYYY.YYYYYYYY.YYYYYYYY(字符串tempDir)    位于YYYYYYYY.YYYYYYYY.YYYYYYYY.YYYYYYYY.YYYYYYYY(流包)

0 个答案:

没有答案