Pregunta

¿Cuál es la forma correcta de incluir un resultado de una acumulación como un binario en otra construcción?

Digamos que tengo una solución llamada CompanyName.Domain (mi Capa de Dominio). Lo tengo configurado como una acumulación y construye cada noche.

Ahora quiero añadir una solución llamada SomeProject.Web. Y quiero incluir el binario de CompanyName.Domin en una carpeta de binarios en un nivel igual con mi solución. A continuación, el proyecto de referencia a SomeProjects.Web binarios \ CompanyName.Domain.dll va a funcionar.

¿Qué es mejores prácticas para hacer esto? Conozco a alguien que dijeron que estaban tratando de hacer esto con ramificación. Soy un Novato total "control de código fuente". Pero algo de esto suena mal.

¿Fue útil?

Solución

Al igual que Daryl, utilizamos una carpeta "binarios" que hacemos referencia binarios de. Nuestros "bibliotecas" construye simplemente xcopy los resultados en la ubicación binarios, por lo que si deseamos actualizar las bibliotecas, sólo echa un vistazo a los binarios, construir y que no estén de nuevo.

Esto nos permite compartir todas nuestras bibliotecas internas (así como cualquier bibliotecas 3 ª parte que utilizamos) desde una única ubicación estandarizada, y todas nuestras bibliotecas puede ser creado previamente, el ahorro de nuestros desarrolladores tener que construir ellos si no son en realidad cambiante nada en el libs.

Tenga cuidado con sólo el lanzamiento de referencia construye de sus bibliotecas (la única excepción que tenemos de esto es que tenemos una biblioteca de depuración ayudantes que son condicionalmente compilado en versiones de depuración solamente, y hay que hacer referencia a la versión de depuración de otra manera todo nuestra depuración se compila fuera del programa, incluso en versiones de depuración!)

Una última nota:. Evitar ramificación menos que no haya alternativa razonable

Otros consejos

Mi compañía hace esto mediante la creación de una carpeta "Referencias" para contener todos los archivos .dll necesarios para construir los conjuntos de referencias externas, como el imposible de carpeta bin realidad ser salvo bajo control de origen.

TFS Dependencia replicador , que puede copiar archivos a cualquier proyecto en TFS después de un proyecto se basa . No tiene verdadera gran documentación, pero parece que hacer lo que se supone que después de obtener su configuración.

La entrada de blog Implementación de la dependencia de replicación con TFS equipo de construcción recomienda la creación de un escenario de ramificación para ayudar con el seguimiento de los proyectos que están utilizando la cual las dependencias, lo que tiene sentido para mí, también.

Mi proceso es similar a la de los otros carteles.

Decir que tengo dos proyectos, los llaman CoreProject y AppProject. CoreProject es compartida. AppProject tiene una carpeta llamada SharedBinaries. Aquí es donde todas las referencias al punto de agrupamiento a.

Mi script TFSBuild para CoreProject está configurado para hacer lo siguiente:

-Obtener más reciente

-Construcción gota a gota zona (algo así como \\ SERVIDOR \ DropZone \ CoreProjectBuildNameAndNumber)

-Drop se copia en una carpeta en la zona de descenso (algo así como \\ SERVIDOR \ DropZone \ latest \ CoreProject)

El script TFSBuild para AppProject está configurado para hacer lo siguiente:

-Obtener más reciente

archivos

-Check fuera de la carpeta SharedBinaries

Los archivos de la copia de \\ SERVER \ DropZone \ latest \ CoreProject

-Construir

-Drop a la zona de salto (algo así como \\ SERVIDOR \ DropZone \ AppProjectBuildNameAndNumber)

-Si la construcción es exitosa la acumulación se copia en una zona de colocación de carpeta (algo así como \\ SERVIDOR \ DropZone \ latest \ AppProject) y los archivos de SharedBinaries se registró

-Si la generación falla los archivos copiados en SharedBinaries tienen el deshecho de pago.

He encontrado que esto funciona muy bien. AppProject siempre está construyendo con los bits más actuales de CoreProject, por lo que sabemos de inmediato si hay un cambio importante. Al tener SharedBinaries controladas en TFS puedo conseguir una versión específica y ejecutar el código con los mismos archivos DLL de CoreProject que se utilizaron en ese momento. También tengo que obtener la última y mi máquina local edifica con los últimos trozos también.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top