Cómo versionar recursos que se comparten entre proyectos

Usamos Team Foundation Server y tenemos numerosos proyectos de aplicaciones web ASP.NET. Cada una de las aplicaciones web utiliza un sistema de gestión de contenido personalizado que hemos desarrollado internamente. El CMS es en sí mismo, una aplicación web ASP.NET.

Cuando se implementa, el CMS reside en un subdirectorio, como "/ Admin". El CMS está compuesto por archivos .aspx y ascx, y los ensamblajes correspondientes se colocan, por supuesto, en el contenedor.

Actualmente, los archivos CMS existen por separado para cada aplicación web en el control de código fuente. En otras palabras, existe una carpeta "Admin" en cada aplicación web que depende del CMS. Esto plantea desafíos obvios ya que las actualizaciones del CMS deben distribuirse a cada sitio dependiente. Mi trabajo es automatizar / simplificar el proceso.

Actualmente no realizamos ninguna compilación automatizada. Tengo un conocimiento limitado de la ramificación de control de fuente en TFS y no estoy seguro de que sea aplicable en este escenario. ¿Cuál es la mejor manera de garantizar que los proyectos dependientes reciban los últimos ensamblajes y marcas del proyecto CMS? Gracias por adelantado

Parece que el # 2 (de 'bambú) es la solución que busco. Dado que el código compartido ya reside en cada proyecto individual, ¿puede describir brevemente el proceso por el que pasaré para "Branch / Share" el CMS? Además, vale la pena señalar que no quiero que los archivos .cs se propaguen a los proyectos dependientes, solo el marcado y los ensamblajes. ¿Cambia esto la estrategia? ¿Debería crear primero un evento de compilación en el proyecto compartido para copiar los archivos necesarios en una carpeta "Release" y luego bifurcar la carpeta Release?

Respuestas a la pregunta(3)

Su respuesta a la pregunta