Я хотел бы выгрузить пользовательский домен приложений, а затем удалить сборку (с жесткого диска), которая была загружена внутри этого домена приложений. Я нашел много ресурсов, предлагающих загрузить сборку через Assembly.Load (byte []). Это позволяет удалить файл, однако мой код не использует эту загруженную сборку.
В основном у меня есть две сборки: A.dll и B.dll
A.dll ссылается на B.dll и хочет вызвать B.dll.
В моем собственном домене приложений я загружаю как A.dll, так и B.dll через Assembly.LoadFrom. Затем я вызываю метод в A, и он автоматически вызывает загруженный B.
Сложность состоит в том, что в глобальном домене приложений и A, и B уже загружены, однако версия B.dll, загруженная в глобальный домен приложений, отличается от версии, которую я хочу загрузить в пользовательском домене приложений.
Использование метода Assembly.LoadFrom заставляет A вызывать правильную версию B
Использование метода Assembly.Load (byte []) заставляет A вызывать версию B, находящуюся в глобальном домене приложений.
Что мне нужно, так это то, что либо: загрузка A.dll в виде байта [] и B ссылается на него правильно, либо загрузка A.dll с помощью Assembly.LoadFrom, но возможность его удаления после выгрузки домена приложения.
Кто-нибудь знает, как этого добиться?
Спасибо,
Christian