Я создаю новый AppDomain для песочницы, для которого ApplicationBase и PrivateBinPath (например, ради) были установлены на C:\MyApp
. Мое исполняемое приложение запущено с C:\SomewhereElse
.
Когда я otherDomain.Load(...)
сборка, мой исполняемый AppDomain также загружает сборку. Я определяю это, проверяя GetAssemblies()
перед загрузкой, а затем также GetAssemblies()
после загрузки.
Почему это происходит? Я подозреваю, что это как-то связано с метаданными, которые должны быть доступны в исполняемом домене приложений, и он передается обратно из нового домена через «Cross Boundary», поэтому вызывающий домен также загружает сборку. Но! Я думал, что сборка не может быть загружена за пределы ее ApplicationBase, если только она не находится в GAC, а в данном случае это не так.
Может кто-нибудь помочь с моим замешательством?