Por todos es conocido la facilidad que nos proporciona Visual Studio 2010 para trabajar con controles de usuario de ASP.NET, a través de la opción de carpeta mapeada de SharePoint:

image

Y luego, desde nuestro webpart podemos cargar el control de usuario que queramos, si hacemos:

image

Sin embargo, si dentro de nuestro UserControl, queremos insertar otro UserControl que también tenemos en la carpeta mapeada, podemos encontrarnos con problemas para que Visual Studio lo “entienda” y nos deje compilar, sobre todo, si el UserControl “hijo” no ha sido desplegado todavía dentro de SharePoint.

Imaginemos el caso en el que hemos arrancado un nuevo proyecto de Visual Studio, hemos mapeado la carpeta ControlTemplates, y hemos creado 2 user controls, donde el ChildUserControl.ascx se utiliza dentro del ParentUserControl:

image

Ahora, en el control padre, añadimos el Register de toda la vida, pero vemos que Visual Studio no lo reconoce.

image

Para solucionarlo, hacer un Deploy de la solución. Aunque no os reconozca el Tag, os dejará compilar y hacer el deploy. Después de hacer el deploy, los ascx se colocarán en la carpeta de SharePoint, entonces, cerramos Visual Studio y lo volvemos a abrir, ya nos reconocerá el control y podremos usar el intellisense.

image

Y comprobamos que funciona la anidación:

image image

Espero que os sirva.

Saludos!!