2012-08-31 11 views
6

Sé que debería usar nuget más, pero en este punto no entiendo completamente los matices, así que todavía tiendo a obtener fuente y construir el proyecto, luego hacer referencia al proyecto, o crear mi propia carpeta "dlls" y copia a mano los dll.Nuget y archivos de control de origen para excluir?

Como parte de mi proceso de aprendizaje, intento comprender qué es crítico y qué no cuando uso nuget. Por ejemplo, he hecho install-package restsharp y ahora cuando reviso el control de fuente, obtengo archivos como "packages/RestSharp.103.4/lib/net4/RestSharp.xml". Asumo que nuget me ayudará con la actualización y tal y necesita tener ciertos archivos de tipo de metadatos.

Mi pregunta es: ¿Debo ignorar alguno o todos los archivos en el directorio "packages"? Si es asi, que y porque.

Gracias

Respuesta

6

Existen dos flujos de trabajo para manejar esta situación. El flujo de trabajo original era enviar todos los archivos (no es necesario ignorar ninguno) en el directorio de paquetes para que otros desarrolladores en su equipo tengan los paquetes para construir el proyecto.

El flujo de trabajo más nuevo, disponible desde NuGet 1.6, es habilitar la función de restauración de paquetes de NuGet para una solución. Esto provocará que los archivos de paquete faltantes se descarguen automáticamente al construir el proyecto, pero ahora ya no tendrá que enviar grandes archivos binarios al control de su versión. A partir de NuGet 2.0, ahora es required que cada desarrollador de su equipo habilite el permiso de restauración de paquetes de NuGet dentro de las opciones de Visual Studio.

+0

No es necesario que todos los desarrolladores habiliten la restauración de paquetes. La carpeta '.nuget' debe estar comprometida. Además, todos los proyectos en la solución se modifican para incluir el archivo 'NuGet.targets'. Durante cada compilación, los paquetes faltantes se detectan y se descargan desde cualquier repo de NuGet configurado. – Sumo

+0

¿significa que puedo ignorar la carpeta de paquetes sin problemas si tengo habilitada una carpeta .nuget? –

+0

@PeterKellner Sí. Pero necesita enviar el archivo packages.config y la carpeta .nuget que mencionó Sumo. –

2

En Visual Studio, bajo el proyecto, hay un elemento de menú denominado Enable NuGet Package Restore. Esto está disponible cuando tiene un proyecto abierto y está usando Proyectos de aplicaciones web (la restauración no funciona con proyectos de sitios web). Seleccione eso y habilite la restauración del paquete. Entonces, no necesita asignar el directorio de paquetes al control de origen en cualquier lugar.

La documentación de NuGet tiene mucha más información en package restore.

Si desea posiblemente paquete imitan a restablecer manualmente, se necesita algo que analiza el archivo packages.config y luego ejecuta el NuGet Commandline Bootstrapper (nuget.exe) para instalar los paquetes. Afortunadamente, el bootstrapper toma un paquete.config como parámetro. Con los siguientes pasos debe restaurar sus paquetes:

  1. Cree una carpeta packages fuera del directorio donde se encuentra la solución.
  2. Desde el directorio de paquetes ejecute lo siguiente desde la línea de comandos:

    nuget.exe instalar [ruta a packages.config]

Todo esto se puede hacer desde dentro de un archivo por lotes o embargo te gustaría automatizarlo

+0

Lo intenté y me advirtió que no funciona con sitios web (solo aplicaciones web). El proyecto en particular en el que estoy trabajando es enorme y la idea de convertirlo en una aplicación web me pone casi enfermo (aunque desearía que nadie me hubiera mostrado el proyecto del sitio web en primer lugar). Entonces, ¿cuáles son las implicaciones para esto? ¿Alguna idea? –

+0

En ese caso (probablemente debería haber sido mencionado como parte de la pregunta original), su única opción es confirmar la carpeta Paquetes y los packages.config.NuGet explícitamente no admite proyectos de sitios web [en este momento] (http://nuget.codeplex.com/workitem/1663). – Sumo

+0

@ Peter Kellner, actualicé mi respuesta para darle una opción con los proyectos del sitio web que podrían funcionar al menos hasta que pueda [convertir a un proyecto de aplicación web] (http://msdn.microsoft.com/en-us/library /aa983476%28v=vs.100%29.aspx) (no es tan doloroso como podría pensar). – Sumo

Cuestiones relacionadas