2010-10-16 20 views
52

Me pregunto si es posible usar nuget para almacenar solo las referencias a los paquetes necesarios en el control de versiones (solo el paquete.config e ignore la carpeta de paquetes).NuGet y control de versión distribuida (DVCS)

¿Hay alguna manera de decirle a nuget que (re) descargue todos los paquetes a los que se hace referencia en los diversos archivos package.config? O algo similar que podría incluirse en un script de compilación.

Actualización:

Parece que no soy el único que solicitó esta característica: See this work item (gracias a PHeiberg por la pista)

Actualización 2:

NuGet ahora tiene esta característica incorporada. Ver Using NuGet without committing packages to source control para más detalles. Todo lo que queda es agregar el directorio de paquetes a .gitignore o algún equivalente de su VCS (/packages/ hará el truco si lo tiene en la raíz de su repositorio y está usando git).

+0

@ Robert-ros responde a esto con la entrada de blog de David Ebbo . :-) http://blog.davidebbo.com/2011/08/easy-way-to-set-up-nuget-to-restore.html – klabranche

Respuesta

8

No sé sobre su primera pregunta.

En cuanto a tener un servidor de CI actualizar automáticamente los paquetes, es posible en teoría. Puede encadenar los comandos "List-Package -Installed" y "Update-Package" y actualizar cada paquete a la última versión. Vea el command reference para más detalles.

Scott Guthrie says this sobre el tema:

"puede integrar la opción de línea de comandos con una solución de CI y hacer un comando actualización paquete explícitamente como parte de su proceso de construcción/CI a tire hacia abajo actualizaciones. Francamente no estoy seguro que tenga sentido para los escenarios que estamos hablando, aunque, como normalmente desea que algunos dev para decidir antes de actualizar un tiempo de ejecución de núcleo la dependencia a una nueva versión. NuPack de modelo predeterminado tendría un desarrollador use NuPack para instalar una biblioteca - y NuPack verificará automáticamente en el paquete y las dependencias del control fuente . De esta forma, otro desarrollador (o el servidor de CI) no necesitaría volver a utilizar el NuPack ; simplemente podrían sincronizar su fuente y compilación . Pero como he mencionado anteriormente - si desea explícitamente hacer una actualización como parte de su proceso de CI que podría "

Editar:.

Después de su comentario que ver lo que está tratando de lograr. Encontré this long thread en la lista de discusiones de NuPack sobre el problema. Una solución aparentemente no será parte de v1. Una tarea de compilación personalizada en el CI de su elección y una configuración en su repositorio es la única solución que veo . Por favor, informe de nuevo con sus conclusiones. Me interesó.

+0

Bueno, no quiero la última versión, quiero la especificada - Simplemente no quiero que los binarios en el repositorio (ya que aumenta el tamaño del repositorio de un repositorio DCVS con cada nueva versión considerablemente) – Fionn

+0

Ok, ese tipo de tiene sentido. Podría incluir una lista de nombres y versiones de paquetes en el repositorio y luego hacer que su CI busque cada uno de ellos con un comando "Add-Package -Version". – PHeiberg

+0

Encontró una discusión reciente sobre esto. Ver mi edición – PHeiberg

5

Hay un debate actual sobre esta pregunta en Phil Haack's blog, donde solicita comentarios sobre cómo abordar esta cuestión.

Cuestiones relacionadas