Tengo tres proyectos de aplicaciones web que comparten una biblioteca común de controles de servidor personalizados. Compartir el código detrás de los archivos es fácil: se compilan en un archivo DLL al que hago referencia en los otros proyectos utilizando una referencia de proyecto. Pero, ¿cómo manejo archivos como JavaScript, hojas de estilo e imágenes? Estoy tratando de hacer esto "de la manera Visual Studio" para que sea tan fácil como sea posible de entender y depurar.¿Cómo comparto recursos web comunes entre aplicaciones web en Visual Studio?
La configuración actual es algo como esto:
CommonControlsWebApp +- CustomControls +- resources +- images +- scripts +- stylesheets WebApp1 +- resources* WebApp2 +- resources* WebApp3 +- resources*
*) directorio virtual en IIS.
El directorio virtual de cada aplicación web apunta al directorio de recursos en CommonControlsWebApp. Esto está configurado en IIS. Visual Studio no puede entender este enlace, por lo que la depuración me requiere adjuntarme al proceso IIS de forma manual.
Otra solución podría ser incluir cada recurso en el dll común usando WebResourceAttribute. Pero eso convertiría los enlaces src
en algo así como WebResource.axd? D = GUID cuando veo el origen de mis páginas web, y me temo que esto hará que sea bastante confuso depurar.
Una tercera solución sería usar Subversion para incluir los mismos archivos en las tres soluciones. Nadie en el equipo ha intentado esto antes, por lo que no estamos seguros de qué tan bien funcionaría.
Siento que me falta una gran solución obvia sobre cómo configurar los proyectos. ¿Alguna sugerencia?
Muchas gracias por esta sugerencia. Me temo que solo puedo marcar una respuesta como la respuesta. –
No hay problema, tal es la vida :) – Lennaert
¿Cómo funciona este enfoque con la depuración? ¿Se puede poner un punto de corte en el archivo JavaScript sobrescrito por la compilación? –