Habilitar restauración de paquetes NuGet

Generalmente cuando empezamos a trabajar con repositorios de código fuente, compartiendo las tareas con otras personas, nos encontramos con ciertos aspectos que debemos manejar de forma correcta. Uno de ellos es la configuración de paquetes NuGet.

Cuando creamos un proyecto, por defecto tendremos creada dentro de la carpeta de la solución una carpeta denominada packages. La misma contiene el contenido de todos los paquetes que se instalan por defecto, como EntityFramework o jQuery.

NugetRestore - Paquetes iniciales
Paquetes al crear un nuevo proyecto MVC

Lo idea es no subir esta estructura a un repositorio de código fuente. El principal motivo es por cuestiones de tamaño, ya que estaremos subiendo muchísimos archivos binarios al servidor cuando en principio no es necesario tener un versionado de los mismos (en un nuevo proyecto MVC el tamaño de dicha carpeta es de unos 60 MB aproximadamente). Cada vez que clonemos el repositorio, tendremos que bajar estos cambios, lo cual hace mucho más engorrosa la tarea.
A su vez, aplicando este mecanismo es mucho más simple la gestión y actualización de las versiones de los paquetes, ya que toda la operación se hace en el entorno local, subiéndose al repositorio solo el nombre del paquete que se utiliza y su versión.

Para ello debemos habilitar la restauración de paquetes NuGet haciendo click derecho en la solución, y seleccionando la opción que se destaca a continuación:

NugetRestore - Habilitar restauracion
Habilitar restauración de paquetes NuGet en la solución

Luego se nos pedirá la confirmación de la operación:

NugetRestore - Confirmacion restauracion
Confirmación de la operación

Una vez que aceptamos, el proceso creará los archivos necesarios y nos indicará con el siguiente mensaje que ha finalizado:

NugetRestore - Resturacion configurada
Configuración exitosa

Si vemos la solución, nos encontraremos con una nueva carpeta, denominada .nuget. La misma contiene las configuraciones necesarias para realizar este proceso. En la misma se encuentra el archivo de configuración NuGet.config que le indica a TFS que debe excluir el contenido de la carpeta packages (excepto el archivo repositories.config), y el archivo NuGet.exe que permite ejecutar la restauración.

NugetRestore - Resultado configuracion
Nueva carpeta .nuget

Finalmente, solo debemos habilitar desde Visual Studio que realice la restauración de paquetes NuGet automáticamente al compilar. Para ello accederemos a la opción Herramientas > Opciones > Administrador de paquetes NuGet, y habilitamos los dos checks disponibles (si es que ya no lo están):

NugetRestore - Configurar VS
Habilitar que Visual Studio haga la restauración de los paquetes necesarios

Y listo, trabajo terminado.
Otra de las ventajas que nos ofrece esta forma de administrar los paquetes NuGet es a la hora de trabajar con publicación automática de nuestro repositorio de código fuente (como puede ser AppHarbor o Azure). Estas aplicaciones se descargarán el código fuente y restaurarán los paquetes NuGet directamente utilizando esta configuración, haciendo la tarea mucho más simple y eficaz.

Ante cualquier duda, les recomiendo la lectura de la documentación oficial de NuGet en ingles: Using NuGet without committing packages to source control

Gracias por leer!

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s