2011-09-10 12 views
10

Estoy usando GIT con un nuevo proyecto ASP.NET MVC. Tengo una línea en mi archivo gitignore ignorar dllsRecursivamente incluyen las DLL de Nuget a través de Gitignore

*.dll 

me gustaría añadir algo en la línea de lo siguiente para incluir (es decir, no ignoran) DLL en mi carpeta de paquetes Nuget

!/packages/*.dll 

El problema que estoy encontrando es que no todos los paquetes nuget se crean por igual y, dependiendo del paquete en cuestión, los archivos DLL se pueden anidar en un número arbitrario de niveles en la jerarquía de rutas. Parece que simplemente necesito una solución recursiva a lo largo de las líneas de:

!/packages/**/*.dll 

!/packages/**/* 

que aún no han encontrado una solución que funcione a través de mysysgit (o cualquier distribución de ventanas GIT).

¿Alguien sabe de una manera de hacer que esto funcione?

Respuesta

19

Deje su nivel superior gitignore solo manteniendo *.dll en él.

Cree otro archivo .gitignore en el directorio packages y ponga !*.dll en él.

+0

Trabajó un lujo. ¡Gracias! –

10

Otra opción a tener en cuenta es NO incluir sus dlls NuGet en su repositorio y en su lugar solo descargarlos la primera vez que crea su proyecto. Esto es lo que hacemos con todas nuestras dependencias NuGet.

ACTUALIZACIÓN

Nuget maneja esto ahora sin tener que crear manualmente sus propios eventos de generación. Vea los detalles en esta página: http://docs.nuget.org/docs/workflows/using-nuget-without-committing-packages


respuesta original:

ponemos la aplicación NuGet.exe en una carpeta de herramientas bajo nuestra solución, y luego añadir lo siguiente a nuestro proyecto pre-construcción evento.

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

La primera vez que construimos la aplicación se descargará todas las dependencias, pero con generaciones posteriores, NuGet es lo suficientemente inteligente para ver que ya existen en la versión correcta y los salta.

+0

Esa es una solución interesante: ¿qué problemas soluciona para usted? – vcsjones

+1

Supongo que lo veo como una extensión de no verificar el código generado. Estábamos teniendo una serie de problemas con nuestras referencias de servicio que se estaban registrando y mientras solucionábamos ese problema, también eliminamos tantas dependencias externas en nuestro repositorio como fuera posible. Tuvimos problemas en ese momento con archivos binarios de gran tamaño que ralentizaban nuestros pagos en SVN. No estoy seguro de que eso sea un problema con nuestra configuración actual, pero no hemos vuelto. –

+3

Actualización: Nuget admite este OOB con Nuget Package Restore. – vcsjones

Cuestiones relacionadas