Come far ignorare i pacchetti Nuget al Tfs

Da qualche anno utilizzo Nuget per integrare framework o librerie esterne nelle mie applicazioni.

Lo trovo uno strumento utilissimo per la gestione delle librerie di terze parti. 

Ma avete mai notato cosa succede quando usiamo nuget e un sistema di controllo del software, per esempio Team Foundation Server (Tfs) o Visual Studio Online ?

Viene create nel nostro repository online una cartella packages. All’interno troviamo tutte le librerie che abbiamo associate al progetto. Il problema è che man mano che le librerie vengono aggiornate o sovrascritte ci ritroviamo un cartella packages mostrusa e non gestibile.

Possiamo far ignorare al Tfs l’upload di tutti i pacchetti Nuget

Sì, possiamo far in modo che ogni singolo sviluppatore, alla prima compilazione, scarichi automaticamente tutte le librerie necessarie. In questo modo, ogni developer avrà la sua cartella in locale e su Tfs ci sarà solo il sorgente.

Cerchiamo di capire come configurare la nostra soluzione.

  1. Apriamo con VisualStudio il progetto.
  2. Aggiungiamo una cartella alla soluzione che chiamaremo “.nuget” (il folder va creata dentro visual studio, altrimenti andrebbe in errore per via del “.” iniziale.

    NugetIgnoreTfs1

  3. All’interno del folder appena creato aggiungiamo un nuovo file e lo chiamiamo nuget.config
  4. Apriamo il file e inseriamo le seguenti righe di codice.

    NugetIgnoreTfs2

  5. Aggiungiamo un file alla cartella .nuget e lo chiamiamo .tfignore 
  6. Apriamo il file e inseriamo le seguenti righe di codice.

    NugetIgnoreTfs3

 

La cartelle .nuget è solo logica, in realtà non esiste nel nostro file system. Infatti, se andiamo a vedere nel Source Control Explorer vedremo solo i due file nuget.config e .tfignore.
Ora possiamo cancellare la cartella packages da Tfs se è stata creata in precedenza. Alla prima compilazione, automaticamente, verrano scaricati tutte le librerie esterne.

Molti si chiederanno come fa VisualStudio a capire quali pacchetti scaricare ? Se facciamo attenzione, all’interno del progetto troviamo il file packages.config, in questo file vengono annotate tutte le librerie che abbiamo scaricato da Nuget e necessarie al nostro progetto.

Buon divertimento !!!

 

 

Annunci

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...