Загрузить сборку в домен приложения - PullRequest
0 голосов
/ 01 ноября 2018

Я написал .dll, которая загружает другие .dll во время выполнения. Это действительно хорошо работает на рабочем столе. Для этого я использую следующий код:

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

Проблема, с которой я столкнулся, заключается в том, что мне нужно повторно использовать этот DLL в моем веб-приложении. Однако после того, как я закончу вызывать код, мне нужно выгрузить сборку для очистки на веб-сервере.

Я продолжаю пытаться использовать 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");

Тот же результат

Я прочитал множество статей о Microsoft / Stackoverflow по доменам приложений и больше ничего не получил.

Если у кого-то есть какие-либо дополнительные знания, я был бы очень признателен.


UPDATE

Когда я пытаюсь добавить событие AssemblyResolve, я получаю следующее исключение:

Тип не разрешен для члена

myDomain.AssemblyResolve += myDomain_AssemblyResolve;
...