У меня есть следующий сценарий:Ошибка в динамически загружаемых пользовательских элементов управления, которые ссылаются на другие элементы управления в различных каталогах
Моя структура каталогов:
- ./Pages/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" />
Это прекрасно работает в режиме разработки, однако, когда я раскрываю его, я получаю:
типа Exception - HttpParseException - База class включает поле 'ctrControl', но его тип (BlueControls_BlueControl) несовместим с типом элемента управления (ASP.BlueControls_BlueControl_ascx).
Если я перемещаю RedControl и BlueControl в том же каталоге, тогда он отлично работает при развертывании.
Как я могу заставить это работать без переноса файлов в один каталог (у нас слишком много экземпляров этого).
Любое понимание было бы весьма полезным.
Существуют ли, возможно, старые версии файлов ASCX или DLL? Тот факт, что он говорит, что тип не совместим, указывает мне, что он загружает тип из неожиданного источника. – Jacob
Нет, старые версии не установлены. Свежая установка. – Jack
Вы пытались использовать «..» вместо «~», например «LoadControl» («../ RedControls/RedControl.ascx»); – Akhil