У меня есть класс, который использует метод подкачки каталогов для Environment.CurrentDirectory. Код выглядит примерно так:
var str = Environment.CurrentDirectory;
Environment.CurrentDirectory = Path.GetDirectoryName(pathToAssembly);
var assembly = Assembly.Load(Path.GetFileNameWithoutExtension(pathToAssembly));
Environment.CurrentDirectory = str;
Как и в моей предыдущей публикации, мы используем этот метод переключения каталогов, чтобы разрешить загрузку указанной сборки, а также любых ссылочных сборок, а также неуправляемых сборок. Проблема, с которой я столкнулся, заключается в том, что эта функция выполняется в двух отдельных доменах приложений. В AppDomain A (созданном мной AppDomain) код работает нормально. В AppDomain B (AppDomain по умолчанию) он выдает исключение FileNotFoundException. Для обоих вызовов я пытаюсь загрузить одну и ту же сборку. Есть какие-нибудь подсказки, почему это так?
Сборка, которую я пытаюсь загрузить





Этот Почта предполагает, что вы не можете изменить путь поиска основного домена приложения после его загрузки - вы должны установить его в файле конфигурации - и содержит ряд предложений, хотя все они сводятся к «вы можете» Сделайте это в основном домене приложений ".
Да, сегодня я потратил около 4 часов, пытаясь понять это правильно (меня даже не волновал основной домен приложения, я создавал новый, но все еще сталкивался с проблемами). В моем случае я бы предпочел не использовать маршрут App.Config, но для меня это лучший сценарий.
На какой файл он жалуется - сборка, которую вы пытаетесь загрузить, или какая-то зависимость?