NUGET es una herramienta que facilita enormemente el trabajo con las referencias de un proyecto desarrollado en VStudio. Simplemente con indicarle a NUGET la librería que queremos usar, él se encarga de localizarla en el repositorio público, descargarla, añadirla al proyecto y realizar la configuración básica. Todo ventajas.
Sin embargo, podría ponerse un pero. La configuración por defecto de NUGET hace que los paquetes se descarguen en una carpeta denominada packages ubicada a nivel de solución. Es decir, si una misma referencia (pongamos por ejemplo Unity), se necesita en dos soluciones diferentes, ésta se descargará dos veces, una a cada carpeta packages de cada una de las soluciones.
En este caso lo óptimo sería descargarlo únicamente una vez y compartir dicho fichero entre todas las soluciones que lo requiera. La solución es bien sencilla. Basta modificar el fichero nuget.config (ubicado en la carpeta .nuget a nivel de solución) de cada una de las soluciones que quieran emplear ese repositorio común. El resultado sería el siguiente:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<config>
<add key="repositorypath" value="d:\sourcecode\nuget.packages" />
</config>
<solution>
<add key="disableSourceControlIntegration" value="true" />
</solution>
</configuration>
Para acabar de completar la configuración, esta misma ruta puede añadirse como origen de paquetes disponibles (Herramientas > Administrador paquetes NuGet > Configuración del Administrador de Paquetes)
Así, de esta manera, la primera vez que se solicite un paquete a NUGET éste se descargará a la carpeta común (c:\sourcecode\nuget.packages en el ejemplo) y a partir de ahí el resto de solicitudes se atenderán desde la misma en lugar de volver a descargarse.