Совместное использование веб-элементов управления в проектах

Я сделал это, используя обычный файл.cs, который просто расширяет System.Web.UI.UserControl, а затем включает сборку проекта, содержащую элемент управления, в другие проекты. Я также создал файлы.ascx в одном проекте, а затем скопировал все файлы ascx из указанной папки в свойствах-> События сборки-> Событие предварительной сборки.

Теперь то, что я хочу сделать, это комбинация этих двух: я хочу иметь возможность использовать файлы ascx, которые я создаю в одном проекте, во всех других моих проектах, но я хочу включить их, просто используя ссылки на сборки, а не копировать их к моим "второстепенным" проектам, поскольку это кажется гетто способом выполнить то, что я хочу сделать. Работает да, но не очень элегантно.

Кто-нибудь может дать мне знать, если это вообще возможно, и если да, то как лучше всего подойти к этому?

3 ответа

Решение

По сути, пользовательские элементы управления никогда не предназначались для совместного использования между проектами. Если вы хотите создать элементы управления, которые можно повторно использовать в разных проектах, вы должны создать серверные элементы управления, которые скомпилированы в DLL, на которую могут просто ссылаться другие проекты.

Разработка пользовательских серверных элементов управления ASP.NET

Эта статья: http://webproject.scottgu.com/CSharp/UserControls/UserControls.aspx содержит полезную идею перед сборкой, которая может копировать элементы управления, необходимые во время разработки.

copy $ (SolutionDir) \ MyUserControlLibrary *.ascx $ (ProjectDir) \ UserControls \

Я знаю, что на этот вопрос уже был дан ответ, но один из наших клиентов использует SiteFinity, и мы предоставляем пользовательским элементам управления скомпилированный файл dll, который они затем настраивают в своей системе CMS. Насколько я могу судить, это работает довольно хорошо.

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

Другие вопросы по тегам