2010-10-16 17 views
52

Tôi tự hỏi nếu có thể sử dụng nuget để chỉ lưu trữ các tham chiếu đến các gói cần thiết trong điều khiển phiên bản (chỉ gói.config và bỏ qua thư mục gói).NuGet và điều khiển phiên bản phân phối (DVCS)

Có cách nào để yêu cầu nuget (lại) tải xuống tất cả các gói được tham chiếu trong các tệp package.config khác nhau không? Hoặc một cái gì đó tương tự mà có thể được đưa vào một kịch bản xây dựng.

Cập nhật:

Có vẻ rằng tôi không phải là người duy nhất yêu cầu tính năng này: See this work item (nhờ PHeiberg cho gợi ý)

Cập nhật 2:

NuGet nay có tính năng này được xây dựng. Xem Using NuGet without committing packages to source control để biết chi tiết. Tất cả các bên trái là để thêm các thư mục gói để .gitignore hoặc một số tương đương của VCS của bạn (/packages/ sẽ làm các trick nếu bạn có nó trong thư mục gốc của kho lưu trữ của bạn và đang sử dụng git).

+0

@ Robert-ros trả lời này với các blog entry từ David Ebbo . :-) http://blog.davidebbo.com/2011/08/easy-way-to-set-up-nuget-to-restore.html – klabranche

Trả lời

8

Tôi không biết về câu hỏi đầu tiên của bạn.

Để có máy chủ CI tự động cập nhật các gói, có thể thực hiện được theo lý thuyết. Bạn có thể chuỗi các lệnh "List-Package -Installed" và "Update-Package" và mỗi gói được cập nhật lên phiên bản mới nhất. Xem command reference để biết thêm chi tiết.

Scott Guthrie says this về chủ đề này:

"Bạn có thể tích hợp các tùy chọn dòng lệnh với một giải pháp CI và làm một lệnh update-gói một cách rõ ràng như phần của quá trình xây dựng/CI của bạn để Thành thật mà nói tôi không chắc chắn có ý nghĩa đối với các kịch bản mà chúng tôi đang nói đến, mặc dù, như là thường bạn muốn một số dev quyết định trước khi cập nhật thời gian chạy lõi phụ thuộc vào phiên bản mới. mô hình mặc định sẽ có nhà phát triển sử dụng NuPack để cài đặt thư viện - và NuPack sẽ tự động đăng ký gói và phụ thuộc vào nguồn kiểm soát. Bằng cách đó, một dev khác (hoặc máy chủ CI CI) sẽ không cần sử dụng lại NuPack - chúng chỉ có thể đồng bộ hóa nguồn và xây dựng của chúng. Nhưng như tôi đã đề cập trước đó - nếu bạn muốn một cách rõ ràng làm một bản cập nhật như một phần của quá trình CI của bạn, bạn có thể "

Edit:.

Sau khi bình luận của bạn tôi thấy những gì bạn đang Tôi tìm thấy this long thread trong danh sách các cuộc thảo luận về vấn đề này.Một giải pháp dường như không phải là một phần của v1.Một nhiệm vụ xây dựng tùy chỉnh trong CI của sự lựa chọn của bạn và cấu hình trong repo của bạn cho nó là giải pháp duy nhất tôi thấy Vui lòng báo cáo lại với các phát hiện của bạn. Bạn đã cho tôi biết.

+0

Tôi không muốn phiên bản mới nhất, tôi muốn có phiên bản cụ thể - Tôi chỉ không muốn các tập tin nhị phân trong kho lưu trữ (vì nó bloats kích thước kho lưu trữ của một kho DCVS với mỗi phiên bản mới đáng kể) – Fionn

+0

Ok, đó là loại có ý nghĩa. Bạn có thể gắn một danh sách các tên gói và các phiên bản trong kho lưu trữ và sau đó yêu cầu CI tìm nạp từng gói với lệnh "Add-Package -Version". – PHeiberg

+0

Tìm thấy một cuộc thảo luận gần đây về điều này. Xem chỉnh sửa của tôi. – PHeiberg

5

Có một cuộc thảo luận hiện tại về câu hỏi này tại Phil Haack's blog, nơi anh ta đang yêu cầu phản hồi về cách giải quyết câu hỏi này.