Spostare la cartella packages di NuGet

Nella configurazione di default NuGet crea una cartella chiamata packages nella root della soluzione dove vengono copiati tutti i package installati.

Questa configurazione non corrisponde però alla struttura delle mie soluzioni che normalmente è:

  • lib
  • src

dove lib contiene tutte le librerie da cui dipendono i progetti mentre i sorgenti della soluzione si trovano in src.

Fortunatamente esiste una feature non documentata che consente di specificare la posizione dei packages. E’ sufficiente aggiungere il file nuget.config allo stesso livello del file .sln e configurare il parametro repositoryPath.

Ad esempio per supportare la configurazione lib – src creare il file nuget.config in questo modo:

<settings>
	<repositoryPath>../lib/packages/</repositoryPath>
</settings>

NB: il path non può essere assoluto ma deve essere relativo rispetto al file .sln

In questo modo sia il package manager che la package console funzioneranno perfettamente utilizzando il nuovo percorso. Ovviamente i package già scaricati dovranno la prima volta essere spostati a mano nella nuova cartella.

Importante: lo stesso Phil Haack precisa che la feature non è supportata e non documentata perchè presenta ancora alcuni problemi e potrebbe essere rimossa/modificata nelle future release di NuGet.

Share

Leave a Reply

Your email address will not be published. Required fields are marked *