Событие AssemblyResolve не запускается во время компиляции динамической сборки для страницы aspx

Этот действительно меня бесит. Вот оно:

Моя цель - загружать сборки во время выполнения, которые содержат внедренные aspx, ascx и т. Д. Я также хотел бы не блокировать файл сборки на диске, чтобы я мог обновлять его во время выполнения без перезапуска приложения (я знаю, это оставит предыдущую версию (и) загруженной).

Для этого я написал провайдера виртуального пути, который делает свое дело. Я подписался на событие CurrentDomain.AssemblyResolve, чтобы перенаправить фреймворк на мои сборки.

Проблема в том, что когда платформа пытается скомпилировать динамическую сборку для страницы aspx, я получаю следующее:

Сообщение об ошибке компилятора: CS0400: не удалось найти тип или имя пространства имен 'Pages' в глобальном пространстве имен (отсутствует ссылка на сборку?)

Ошибка источника: общедоступный класс

Я заметил, что если я загружаю сборку с помощью Assembly.Load (AssemblyName) или Assembly.LoadFrom (filename), я не получаю вышеуказанную ошибку. Если я загружаю его с Assembly.Load (byte []) (чтобы не блокировать его), генерируется исключение, но мой обработчик AssemblyResolve при вызове возвращает сборку правильно (она вызывается один раз).

Поэтому я предполагаю, что он вызывается один раз, когда инфраструктура анализирует разметку asp, но не когда она пытается создать динамическую сборку для страницы aspx.

Ответы на вопрос(0)

Ваш ответ на вопрос