2010-08-02 12 views
5

Tenemos más de 50 proyectos divididos en 2 árboles de soluciones gestionados por TFS (Versión: Visual Studio 2008/TFS RTM (9.0.21022.8)).Práctica recomendada para compartir proyectos entre árboles de soluciones (MSVS 2008 y MSVS 2010)

30 + proyectos son Visual Studio 2008 proyectos y otros son Visual Studio 2010

nuevos proyectos utilizan algunos conjuntos de más edad a través de referencias a los binarios.

Durante el desarrollo de nuevos proyectos, tenemos que hacer cambios en ensamblajes más antiguos, por lo que debemos mantener abiertas simultáneamente 2 instancias de MSVS.

¿Hay alguna forma de compartir fuentes compilables con TFS entre dos árboles de soluciones de estudios diferentes? ¿O debemos actualizar el árbol de soluciones 2008 al 2010? ¿TFS 2008 admite proyectos compartidos (o puede que deba actualizarse también)?

¡Gracias de antemano!

Respuesta

6

Andrew:

En primer lugar, se viola un par de "mejores prácticas" para lograr esto, pero el pragmatismo es donde se encuentra con las mejores prácticas del mundo real.

Lo que hacemos es la siguiente:

  1. Todos los binarios se comprueban para TFS dentro de una carpeta LocalBin que consolida todos nuestros binarios.
  2. Todos los ensamblados compartidos se encuentran dentro de una carpeta llamada LocalBin/SharedBin
  3. La carpeta SharedBin está ramificada a una carpeta SharedBin de nivel superior dentro de los proyectos del equipo consumidor.
  4. En una compilación principal exitosa, LocalBin/Sharedbin se combina con las carpetas SharedBin de los proyectos.

Se termina siendo algo como esto:

$/ProjectA/Main/Localbin/SharedBin está ramificado a $/ProjectB/Main/SharedBin y $/ProjectB/Dev/Sharedbin (así como las carpetas equivalentes en $/ProjectC, $/ProjectD etcétera).

Solo compartimos esto cuando tenemos una compilación MAIN exitosa, y la compilación es responsable de fusionarse no solo con los otros proyectos principales de rama, sino también con los proyectos de rama de DEV, para que estén actualizados.

Hemos trabajado con la idea de manejar los binarios en una ubicación de red compartida después de una compilación exitosa, y tener una convención para hacer referencia a esos binarios en esa red compartida, pero este proceso nos funciona bien hoy, y detestamos hacer cambios en este punto (cosas más importantes que suceden por el momento).

Esta es una de esas cosas que es difícil de describir completamente en una publicación, por lo que si tiene más preguntas, estaremos encantados de tratar de responderlas.

BTW, nuestra solución fue construida y se ejecuta bajo TFS2008 con miles de archivos de proyecto y probablemente millones de líneas de código. Aumenta el tiempo de compilación debido a la fusión y aumenta la cantidad de espacio utilizado en su repositorio, pero ambos han sido manejables hasta el momento.

+1

Gracias por la solución. ¡Me llevará algo de tiempo investigar! –

Cuestiones relacionadas