Dovremmo includere la cartella Nuget PACKAGE nel controllo della versione?

56

Mi piacerebbe sapere

Nel progetto C # o VB.NET dovremmo includere la cartella PACKAGE (cartella del pacchetto di nugget creata nella root del mio progetto che contiene i file nupkg e altri contenuti) nel nostro repository di controllo del codice sorgente (Git per esempio).

    
posta Bastien Vandamme 03.11.2015 - 07:44
fonte

3 risposte

23

È passato molto tempo e NuGet è cambiato, quindi ecco una nuova risposta.

NuGet non crea più una cartella di pacchetti all'interno della struttura di origine. Invece ce n'è uno nella tua directory utente ( %HOME%\.nuget\packages per essere specifico) dove mette tutti i pacchetti che scarica e i progetti fanno semplicemente riferimento a questi.

Quindi la semplice risposta in questi giorni è no, non dovresti. Se sei preoccupato per i pacchetti che devi eliminare, devi creare un mirror NuGet locale di cui eseguire il backup separatamente.

    
risposta data 10.03.2017 - 10:50
fonte
44

Dipende.

Controlla la risposta di Bart van Ingen Schenau per determinare se è possibile ignorare la cartella packages .

In sostanza: sì, NuGet è progettato in modo che tu possa ignorare la cartella packages e NuGet estrarrà tutto da Internet se manca.

Ma dovresti ignorarlo? Dico: dipende.
IMO è una questione di "possiamo continuare a lavorare nel caso il repository del pacchetto non sia disponibile" (sia temporaneamente che permanentemente)

Per i miei progetti OSS personali, ho la cartella packages ignorata in tutti loro.
Quando nuget.org è offline, aspetterò e continuerò un altro giorno.

Ma è qualcosa di diverso al lavoro.
Certo, probabilmente hai ancora i pacchetti localmente su qualche macchina, ma stai risparmiando uno spazio che merita il fastidio quando le tue build si stanno rompendo perché il tuo server di build non può raggiungere nuget.org?

Abbiamo deciso che lo spazio è economico e non vogliamo il fastidio, per questo stiamo impegnando la cartella packages sul controllo del codice sorgente.

    
risposta data 03.11.2015 - 23:45
fonte
24

La regola di base per ciò che entra in un repository di controllo del codice sorgente è la memorizzazione di tutto ciò che riguarda un progetto che è necessario essere in grado di creare, testare, distribuire ed eseguire il progetto e che non può essere generato da elementi già presenti nel repository.

In altre parole, se riesci a buttare via la cartella PACKAGE e il suo contenuto senza intaccare la tua capacità di continuare a lavorare sul progetto (la compilazione potrebbe richiedere più tempo, ma non devi cacciare e installare nulla da te), quindi la cartella può essere lasciata al sicuro dal repository.
Se la cartella contiene pacchetti di terze parti che potrebbero richiedere molto tempo per essere scaricati o che potrebbero non essere disponibili, potrebbe essere un motivo per aggiungerli comunque al repository.

    
risposta data 03.11.2015 - 08:40
fonte

Leggi altre domande sui tag