¿Cómo se puede usar carpetas 'lib' en proyectos .Net para build en dependencies?

Necesito que mis dependencies dll externas (automap, otras …) entren en una situación en la que pueda buildlas en mi server de compilation. También me gustaría llevarlos a la subversión, para que el server de compilation pueda recogerlos.

Así que soy nuevo en todo lo de la carpeta 'lib'. He buscado en Google, pero parece que se supone, no hay conceptos básicos sobre qué hacer aquí. Los libros que poseo no entran en eso. Ha pasado mucho time desde que tuve un mentor en el trabajo, o incluso alguien con quien poder hacer preguntas … y realmente me gustaría entender los fundamentos de lo que debería estar haciendo aquí.

Escribo en .Net, uso Jenkins como mi server de CI (nuevo para eso) y msbuild (nuevo para eso también). Estoy escuchando svn: externos (no calculo), NuGet ….

¡Por favor ayuda!

Supongamos que mi solución se llama MySolution y se almacena en C: \ MySolution, luego tengo tres directorys para binarys, todos administrados por control de fuente.

  • proveedor el código fuente de frameworks de terceros. Si es necesario, se comstackn y firman (con mi key) y se tratan como si el código fuera mío. Esto a veces es necesario para "corregir" defectos en el marco o depurar su fuente para comprender por qué falla.
  • src \ packages modules gestionados por nuget (he querido combinar esto con mi carpeta "lib", pero eso aún no es compatible)
  • Lib compilé bibliotecas para las que no tengo la fuente y que no están administradas por nuget.

(He omitido carpetas como "src", "muestra", "configuration", "documentation" y "scripts" para mantener la respuesta específica al OP).

Los últimos meses comencé a crear mis propios packages nuget para "packages" en la carpeta lib para poder migrarlos a todos a "packages". Está publicado en un server nuget privado. También simplifica la administración de los binarys en las soluciones.

Solía ​​utilizar externos, pero representan una pesadilla de ramificación después de un time porque tienes que ramificar y anclar las dependencies externas a. Con nuget esto ya no es necesario.

Definitivamente evitaría poner binarys en control de fuente. Sería mucho mejor que crearas tu propio repository nuget que contenga tus versiones preferidas de packages y, ya sea usando Nuget restre o alguna otra forma de "rehidratar" tus dependencies para build. Utilizo un file por lotes simple llamado nuget-update.bat que solo mira todos los files packages.config y obtiene las dependencies que encuentra.

Parece que has publicado una secuencia de preguntas sobre el mismo tema. Recomiendo NuGet, ya que se vuelve crítico y promovido por Microsoft. Sin embargo, muchas bibliotecas antiguas no están disponibles allí, y es posible que deba mantener una carpeta lib. Mi proyecto de código abierto #SNMP es un buen ejemplo,

Traté de usar tantos packages NuGet como sea posible, e incluso intensifiqué para mantener algunas de las dependencies, como DockPanel Suite.