Я ищу создание некоторых настраиваемых элементов управления, которые необходимо скомпилировать как отдельную dll, а не с основным приложением. К сожалению, до сих пор это означало создание элементов управления вручную без использования конструктора, поскольку afaik вы не можете скомпилировать пользовательский элемент управления как отдельный компонент. Поскольку такой способ делает элементы управления довольно сложными для стилизации дизайнеров, не прилагая больших усилий со стороны разработчиков, мне интересно, есть ли на самом деле жизнеспособный способ скомпилировать элемент управления стиля .ascx в отдельный двоичный файл. ?
Создание пользовательских элементов управления с помощью файлов .ascx
Ответы:
Вы можете превратить пользовательский элемент управления в настраиваемый элемент управления, который находится в автономной .dll, но он теряет возможность обновления через разметку.
Другими словами, вы можете создать файл .ascx, используя разметку и код, а затем превратить его в нечто похожее на элемент управления, созданный исключительно с помощью кода.
Превращение пользовательского элемента управления .ascx в пользовательский элемент управления
Вы должны понимать, что пользовательские элементы управления - это просто удобство для многократно используемого контента - в конечном итоге разметка обрабатывается и компилируется. Настраиваемые элементы управления - действительно единственный способ распространить веб-элемент управления. ЕСЛИ вам нужно распространять элементы управления как библиотеку, я бы сосредоточился на том, чтобы сделать их удобными для CSS для ваших разработчиков с помощью всего лишь нескольких свойств управления макетом, вместо того, чтобы возиться с .ascx.
Статья MSDN http://msdn.microsoft.com/en-us/library/aa479318.aspx объясняет, как это сделать. Обычно вы предварительно компилируете приложение и берете полученную DLL.
aspnet_merge <yourdeploydir>
из командной строки без параметров. Это превратит каждый каталог в одну DLL со всеми ASCX под ней: msdn.microsoft. ru / en-us / library / bb397866.aspx 02.02.2010