2009-10-07 12 views
5

Tengo algunos controles personalizados que se crearon como proyectos de Controles de servidor. Tenía que hacer algunos cambios, así que simplemente agregué las clases a un proyecto de aplicación web existente para poder tener todo en un solo lugar. Este proyecto de aplicación web se compila en un dll que se utiliza en varios proyectos web.Control personalizado en un proyecto de aplicación web .net

Cuando construyo el proyecto de aplicación web y colocar el archivo DLL en el cubo de un sitio web diferente, cuando vaya a utilizar el control me sale el siguiente error:

Desconocida 'CustomControls: RadioButtonListForGrid' etiqueta servidor

Si agrego las clases de control personalizadas a la carpeta app_code de mi sitio web, funciona bien. Utilicé el buscador de objetos y confirmé que estas clases están en el dll.

¿Me falta algo obvio aquí? ¿Debo dejar esto como proyectos de Control de servidor y combinar los dlls con ILmerge?

EDITAR

Resulta que necesitaba para añadir el nombre de ensamblado. También resulta que la asamblea no fue nombrada como yo pensaba. Supongo que debería comprobar eso. Oops.

+0

¿Cuál era el nombre del ensamblado? ¿Cuál fue el patrón de nombres? – Matt

+0

Ver mi comentario a continuación, en la respuesta aceptada. – ScottE

Respuesta

4

¿Agregó el prefijo de etiqueta a web.config?

<pages> 
    <controls> 
    <add tagPrefix="CustomControls" namespace="MyApp.CustomControls" ... 
+0

Sí. También probado en el nivel de página. La misma configuración de web.config funciona con las clases en la carpeta app_code, pero no compilada en el dll. – ScottE

+0

Eche un vistazo a http://www.paraesthesia.com/archive/2007/08/02/generation-of-designer-file-failed-unknown-server-tag.aspx. –

+0

@Robert Harvey - Lo he intentado con y sin el ensamblaje, en todas las permutaciones – ScottE

2

Puedo confirmarlo, agregando el nombre del ensamblado en la directiva Register funciona! Entonces es imprescindible incluso si es el mismo ensamblaje.

Cuestiones relacionadas