Ошибка в динамически загружаемых пользовательских элементах управления, которые ссылаются на другие элементы управления в разных каталогах - PullRequest
5 голосов
/ 02 февраля 2012

У меня есть следующий сценарий:

Моя структура каталогов:

  • . / Страницы / Page.aspx
  • . / RedControls / RedControl.ascx
  • . / BlueControls / BlueControl.ascx

Page.aspx.cs динамически создает RedControl:

RedControls_RedControl C = (RedControls_RedControl)Page.LoadControl("~/RedControls/RedControl.ascx");

RedControl.ascx использует BlueControl:

<uc:BlueControl runat="server" ID="ctrControl" />

Это прекрасно работает в режиме разработки, однако при развертывании я получаю:

Тип исключения - HttpParseException - Базовый класс включает поле 'ctrControl', но его тип (BlueControls_BlueControl) не совместим с типом элемента управления (ASP.BlueControls_BlueControl_ascx).

Если я перемещу RedControl и BlueControl в одну директорию, то при развертывании она работает нормально.

Как я могу заставить это работать, не перемещая файлы в один каталог (у нас слишком много экземпляров этого).

Любое понимание будет с благодарностью.

1 Ответ

3 голосов
/ 06 февраля 2012

Это может произойти в некоторых сценариях, когда у вас есть несколько папок с элементами управления, которые указывают друг на друга в обоих направлениях (или в более сложных ситуациях, связанных с большим количеством папок).простой способ решить эту проблему: отключить пакетирование, установив batch = "false" в разделе <compilation> в файле web.config.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...