2011-09-10 11 views
10

Sto utilizzando GIT con un nuovo progetto ASP.NET MVC. Ho una linea nel mio file gitignore di ignorare le DLLInclude ricorsivamente DLL Nuget tramite Gitignore

*.dll 

Vorrei aggiungere qualcosa sulla falsariga di quanto segue per includere (vale a dire non ignorare) DLL nella mia cartella pacchetti Nuget

!/packages/*.dll 

Il problema che sto incontrando è che non tutti i pacchetti di nuget sono creati ugualmente e, a seconda del pacchetto in questione, le DLL possono essere annidate in un numero arbitrario di livelli nella gerarchia del percorso. Sembra che ho semplicemente bisogno di una soluzione ricorsiva lungo le linee di:

!/packages/**/*.dll 

!/packages/**/* 

non ho ancora trovato una soluzione che funziona tramite mysysgit (o qualsiasi distribuzione finestre di git).

Qualcuno sa di un modo per fare questo lavoro ???

risposta

19

Lascia il tuo livello superiore gitignore da solo mantenendo *.dll in esso.

Creare un altro file .gitignore nella directory dei pacchetti e inserire !*.dll in esso.

+0

Ha funzionato a meraviglia. Grazie! –

10

Un'altra opzione da considerare NON è includere le dll NuGet nel repository e, invece, scaricarle solo la prima volta che si crea il progetto. Questo è ciò che facciamo con tutte le nostre dipendenze NuGet.

UPDATE

Nuget gestisce questo ora, senza dover creare manualmente i propri eventi di generazione. Vedere i dettagli in questa pagina: http://docs.nuget.org/docs/workflows/using-nuget-without-committing-packages


risposta originale:

Abbiamo messo l'applicazione NuGet.exe in una cartella strumenti sotto la nostra soluzione e quindi aggiungere il seguente al nostro progetto pre-build evento.

"$(SolutionDir)Tools\NuGet.exe" install "$(ProjectDir)packages.config" -o "$(SolutionDir)Packages" 

La prima volta che si costruisce l'applicazione verrà scaricato tutte le dipendenze, ma con successivo costruisce, NuGet è abbastanza intelligente per capire che già esistono in versione corretta e li salta.

+0

Questa è una soluzione interessante: quali problemi risolve per te? – vcsjones

+1

Credo di vederlo come un'estensione di non controllare il codice generato. Stavamo riscontrando una serie di problemi con il check-in dei nostri riferimenti al servizio e, nel risolvere il problema, ci siamo anche sbarazzati del maggior numero possibile di dipendenze esterne nel nostro repository. All'epoca avevamo problemi con file binari di grandi dimensioni che rallentavano i nostri pagamenti in SVN. Non sono sicuro che sarebbe un problema con la nostra configurazione attuale, ma non siamo tornati indietro. Aggiornamento –

+3

: Nuget supporta questo OOB con Ripristino pacchetto Nuget. – vcsjones

Problemi correlati