Я написал .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;