2011-09-10 31 views
10

Tôi đang sử dụng GIT với một dự án ASP.NET MVC mới. Tôi có một dòng trong tập tin gitignore tôi bỏ qua dllsĐệ quy bao gồm Nuget DLL qua Gitignore

*.dll 

Tôi muốn thêm một cái gì đó dọc theo dòng trong các cách sau để bao gồm (tức là đừng bỏ qua) DLL trong thư mục gói NuGet tôi

!/packages/*.dll 

Vấn đề tôi gặp phải là không phải tất cả các gói nuget đều được tạo ra như nhau và, tùy thuộc vào gói được đề cập, các DLL có thể được lồng vào một số lượng tùy ý trong hệ thống phân cấp đường dẫn. Dường như tôi chỉ đơn giản là cần một giải pháp đệ quy dọc theo dòng:

!/packages/**/*.dll 

!/packages/**/* 

Tôi vẫn chưa tìm thấy một giải pháp mà sẽ làm việc qua mysysgit (hoặc bất kỳ phân phối cửa sổ của git).

Có ai biết cách nào để thực hiện công việc này không ???

Trả lời

19

Để mức cao nhất của bạn gitignore một mình bằng cách giữ *.dll trong đó.

Tạo một tệp khác .gitignore trong thư mục gói và đặt !*.dll trong đó.

+0

Đã xử lý. Cảm ơn bạn! –

10

Một tùy chọn khác để xem xét KHÔNG bao gồm tệp NuGet của bạn trong kho lưu trữ của bạn và thay vào đó chỉ tải xuống chúng lần đầu tiên bạn xây dựng dự án của mình. Đây là những gì chúng tôi làm với tất cả các phụ thuộc NuGet của chúng tôi.

CẬP NHẬT

NuGet xử lý này ngay bây giờ mà không cần phải tự tạo xây dựng của bạn sự kiện riêng. Xem chi tiết trên trang này: http://docs.nuget.org/docs/workflows/using-nuget-without-committing-packages


gốc trả lời:

Chúng tôi đặt các ứng dụng NuGet.exe trong một thư mục cụ dưới giải pháp của chúng tôi, và sau đó thêm dòng sau vào dự án của chúng tôi trước khi xây dựng biến cố.

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

Lần đầu tiên chúng ta xây dựng ứng dụng nó sẽ tải về tất cả các phụ thuộc, nhưng với xây dựng tiếp theo, NuGet là đủ thông minh để thấy rằng họ đã tồn tại ở phiên bản chính xác và bỏ qua chúng.

+0

Đó là một giải pháp thú vị - nó giải quyết vấn đề gì cho bạn? – vcsjones

+1

Tôi đoán tôi thấy nó là một phần mở rộng của việc không kiểm tra trong mã được tạo ra. Chúng tôi đã gặp một số vấn đề với Dịch vụ tham khảo của chúng tôi đang được kiểm tra và trong khi khắc phục vấn đề đó, chúng tôi cũng đã loại bỏ càng nhiều phụ thuộc bên ngoài trong repo của chúng tôi càng tốt. Chúng tôi đã có vấn đề tại thời điểm với các tệp nhị phân lớn làm chậm quá trình kiểm tra của chúng tôi trong SVN. Tôi không chắc đó có phải là vấn đề với thiết lập hiện tại của chúng tôi hay không, nhưng chúng tôi chưa quay lại. –

+3

Cập nhật: Nuget hỗ trợ OOB này với Khôi phục gói Nuget. – vcsjones

Các vấn đề liên quan