#c# #clr #assemblyresolve
#c# #clr #assemblyresolve
Вопрос:
Я знаю, что это возможно, зарегистрировавшись в AppDomain.Событие AssemblyResolve для обработки попытки загрузить сборку, когда автоматический поиск в среде CLR не удался.
В моем текущем проекте было бы полезно обрабатывать всю загрузку сборки с помощью такого механизма; есть ли способ сделать это?
(Некрасивым) обходным путем было бы переместить исполняемый файл в отдельный каталог и позволить всему обрабатываться делегатом AssemblyResolve; Я надеюсь, что есть более чистое решение.
С уважением, Андреа
Комментарии:
1. Это можно сделать через интерфейсы отладчика и профилировщика. Подходит ли это, совершенно невозможно угадать из вашего вопроса. Важно почему .
2. Я загружаю сборки с помощью Assembly. Загрузка (байт[]). Это работает нормально, но случается, что на ту же сборку, которую я только что загрузил, ссылается другой assembly и дважды загружается в AppDomain. Я думаю, что мой лучший вариант избежать этого — получить больший контроль над динамикой загрузки.
3. Ну, это невозможно, если только вы не загружаете его с помощью Assembly. Загрузка (byte[]) также доступна на диске. Переместите его в подкаталог, чтобы среда CLR не смогла его найти. Используйте fuslogvw.exe для устранения проблем с разрешением сборки.