将程序集加载到AppDomain中

时间:2018-11-01 16:29:07

标签: c# dll .net-assembly appdomain

我写了一个.dll,它在运行时会加载其他.dll。这在桌面上真的很好用。我正在使用以下代码实现这一目标:

Assembly loadedAssembly = Assembly.Load("somePath");

我遇到的问题是我需要在Web应用程序中重用此.dll。但是,在调用完代码后,我需要卸载程序集以在Web服务器上进行清理。

我一直尝试使用AppDomain,但我不断收到一个例外,即该库或其依赖项之一不存在。

AppDomain myDomain = AppDomain.CreateDomain("MyNewDomain");
myDomain.Load("SomePath.dll");

没用

AppDomainSetup domainSetup = new AppDomainSetup() {  };
Evidence domainEvidence = new Evidence();
domainEvidence.AddHostEvidence(new Zone(SecurityZone.Trusted));
PermissionSet permissions = SecurityManager.GetStandardSandbox(domainEvidence);

AppDomain myDomain = AppDomain.CreateDomain, domainEvidence, domainSetup, permissions, null);
myDomain.Load("SomePath.dll");

结果相同

我已经阅读了关于AppDomain的许多Microsoft / Stackoverflow文章,并且没有进一步了解。

如果有人有更多的知识,我将不胜感激。


更新

当我尝试添加AssemblyResolve事件时,出现以下异常:

成员类型不正确

myDomain.AssemblyResolve += myDomain_AssemblyResolve;

0 个答案:

没有答案