ASP.NET User Control компилируется в DLL - PullRequest
1 голос
/ 05 февраля 2012

У меня есть стандартный проект веб-сайта и проект веб-развертывания в VS2010. Я использую этот проект и пакет развертывания около 4 лет без проблем.

Для пакета развертывания установлено «Объединение всех страниц и управление выходами в одну сборку».

Не было проблем с этой настройкой в ​​течение 3-4 лет, до сих пор! В последней версии веб-сайта я добавил папку с несколькими страницами и еще одну папку с 3 пользовательскими элементами управления. Теперь, когда я собираю пакет развертывания, 2 из 3 пользовательских элементов управления компилируются в свои собственные библиотеки DLL, остальные компилируются, как и ожидалось. , Я проверил пространство имен в коде за страницами всех трех элементов управления, и они все одинаковые и не могут найти где-нибудь, где он будет указывать компилятору компилировать эти два элемента управления, а не другие?

Мой элемент управления находится в пространстве имен G2F.Forms.Controls.FormDefintitionListItemControl (который отражает структуру папки и имя элемента управления).

У меня есть страница, на которой нужно получить ссылку на один из этих элементов управления и который использует:

.FindControl ("IdName") как MyControl

Код работает нормально при использовании веб-сайта или запуске проекта, но при компиляции веб-сайта приведенный выше код возвращает значение null, поскольку теперь элемент управления имеет тип ASP.forms_controls_formdefinitionlistitemcontrol_ascx.

Этот и еще один элемент управления являются единственными, которые компилируются таким образом, и в решении имеется около 40-50 других элементов управления.

1 Ответ

2 голосов
/ 08 февраля 2012

В соответствии с моим последним комментарием, я нашел решение, преобразовав веб-сайт в веб-приложение, при этом возникает множество ошибок, но в конечном итоге после большого количества сортировок пространств имен и нескольких компиляций, чтобы правильно настроить параметры развертывания (установите «Разрешить обновление этого предварительно скомпилированного сайта»!) Я заработал.

Это кажется немного экстремальным, но, потеряв 4 дня в погоне за ошибкой и восстановлением, приятно иметь возможность снова заставить ее работать!

...