Tenemos una solución con múltiples proyectos web, y hay algunas páginas que deberían estar presentes en varios de ellos. Por lo tanto, necesitaríamos algún tipo de proyecto compartido que contenga archivos aspx y a los que otros proyectos web puedan hacer referencia.Compartir página aspx entre proyectos
Ahora hay algunas implementaciones por ahí:
Una aplicación described by ScottGu que consiste en la construcción del proyecto común, y que la copia de la salida de aspx en el proyecto de acogida, y haciendo referencia a la DLL de la aspx. Este método tiene la desventaja de que si se modifica el apsx, debe volver a copiarse.
Otra opción, basada en David Ebbo's post sería convertir el aspx en ascx-es que se puede hacer referencia como controles personalizados, y que incluir esos custom-control-aspx-es en el proyecto host dentro de algunas páginas de marcador de posición. Pero mis preocupaciones son: ¿pueden todas las páginas de apsx transformarse en un ascx? Quiero decir que no hay ningún evento Page.LoadComplete en los controles de usuario, por ejemplo.
Y, sin embargo, otra opción es utilizar directorios virtuales que se asignen al proyecto web compartido, como se describe en Microsoft KB article. El problema nuevamente con este método es que las aspx-es compartidas deben estar en directorios predefinidos (es decir, el directorio virtual). Si el nombre del directorio virtual se superpone a un directorio físico, el virtual lo anula y no se pueden usar páginas de este último. ¿Es posible fusionar estos dos?
¿Alguna idea? Gracias de antemano P.S. ¿Qué hay de la depuración de las páginas compartidas?
Y con UserControls no hay necesidad de copiarlos (ver la propuesta de segundo párrafo de la pregunta). Gracias por la respuesta. – jaraics
Ahora solo estoy copiando estos dll en el evento PreBuild, que no es un gran problema. Debería echar un vistazo a la publicación de David Ebbo. Gracias por el consejo. – azhons