Совместное использование веб-элементов управления в проектах
Я сделал это, используя обычный файл.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, клиенту, и они импортируют по мере необходимости.