5

He escrito una buena cantidad de software en los últimos años, la mayoría de los cuales tienden a compartir una o más bibliotecas comunes. (La biblioteca más común, que utilizo para invocar procedimientos almacenados de SQL y devolver matrices de objetos)Métodos de gestión del código fuente

No estoy contento con la forma en que administro las bibliotecas, y estoy buscando sugerencias para mejorar el camino Trabajo.

La primera vez que creé lo que ahora es una biblioteca compartida, agregué la biblioteca como un proyecto de biblioteca de clases separado dentro de la solución.

Ahora, cuando empiezo una nueva solución y sé que voy a necesitar una biblioteca que ya tengo, iré a buscar el proyecto de la biblioteca y copiaré los archivos en la nueva solución.

Esto me deja con varias copias del mismo proyecto de biblioteca salpicado alrededor de mi sistema de archivos (y el servidor SVN), y simplemente no me siento bien.

¿Existe una forma mejor de trabajar, de modo que solo tengo una copia maestra de esta biblioteca que todas las soluciones comparten, en lugar de que cada solución tenga su propia copia del proyecto de la biblioteca?

Respuesta

5

Basta con construir la biblioteca una vez, y hacer referencia al binario compilado de su proyecto que necesita usarlo.

En el estudio visual, haga clic derecho en el proyecto y haga clic en "agregar referencia", luego elija la pestaña "examinar" y busque las bibliotecas binarias.

(Es obvio que tendrá que distribuir el ensamblado de biblioteca junto con su solicitud)

+0

Gracias. No puedo creer que me haya perdido algo tan fundamental, después de años de trabajar en Visual Studio. – Bryan

+0

No estoy seguro de que esta sea la mejor respuesta. Agregar un binario significa que si el proyecto compartido cambia, deberá volver a compilarlo y luego volver a compilar todas las soluciones dependientes que lo hacen referencia, lo que podría generar problemas de dependencia de la compilación.Sugeriría agregarlo como referencia de proyecto en su lugar – zebrabox

+0

@zebrabox: No sigo, ¿No es esto exactamente lo que dice la publicación de Simon? – Bryan

1

que sugeriría la compilación de tu biblioteca en un archivo DLL que se puede añadir como una referencia a cualquier otro proyecto que se está trabajando. Entonces no necesita copiar los archivos fuente en todas partes.

2

Su sensación es absolutamente correcta. Debe haber solo un maestro de la biblioteca fuente.

En nuestra tienda tenemos varios proyectos de biblioteca compartida utilizados por varios productos. Vemos estas bibliotecas como productos en sí mismos y los tratamos en consecuencia. Específicamente, cuando un proyecto necesita una de estas bibliotecas, colocamos una versión compilada de la biblioteca en una carpeta lib del proyecto. Eliminamos la necesidad de copiar la fuente, y nuestro proyecto solo hace referencia a una copia estable de la DLL.

Aquí está un ejemplo de estructura en el repositorio

/LibraryX   <- product root 
    ../branches 
    ../tags 
    ../trunk   <- solution folder 
     ../LibraryX <- project folder 
     ../lib  <- thirdparty libraries used by LibraryX 

/ProductY   <- product root 
    ../branches 
    ../tags 
    ../trunk   <- solution folder 
     ../ProductY <- project folder 
     ../lib  <- thirdparty libraries 
         used by ProductY, e.g. a copy of LibraryX.dll 

Así, en el proyecto ProductY, en lugar de incluir una copia del proyecto LibraryY se agrega una referencia a la LibraryX.dll situada en el carpeta lib

+0

Esa es exactamente la estructura que estoy buscando. Muchas gracias. – Bryan

1

Usted sólo debe generar una DLL con su biblioteca y luego simplemente hacer referencia a ella ..

Referencias> Agregar referencia en VS.

Cuestiones relacionadas