2013-09-28 48 views
6

Reading Using NuGet without committing packages to source control tôi đã hiểu tôi nên thêm thư mục .nuget để dự án của tôi để cho phép gói khôi phục trong xây dựng ... và đọc Prepare a git repo for NuGet tôi đã hiểu tôi có thể loại bỏ NuGet.exeNuGet.config và để cho IDE tự động tải xuống chúng bằng cách đặt DownloadNuGetExe thành true trong NuGet.targets.NuGet - Làm thế nào để cấu hình gói khôi phục trên MonoDevelop/Xamarin Studio

Vâng, tôi là một chút nhầm lẫn từ 1) Xamarin Studio không tải không NuGet.exe cũng không NuGet.config ... và 2) thư mục .nuget là không cần thiết ở tất cả vì người ta chỉ có thể thực hiện lệnh Restore NuGet Packages trên trình khám phá giải pháp và các gói được khôi phục.

Có cách nào đúng để định cấu hình khôi phục gói trên Xamarin Studio/MonoDevelop?

Trả lời

3

Bật khôi phục gói để xảy ra khi dự án được biên dịch không thể sử dụng phần bổ trợ NuGet cho Xamarin Studio. Đó là điều mà tôi không thực hiện. Nếu bạn muốn làm điều này, bạn sẽ phải thêm các tập tin bằng tay và chỉnh sửa dự án để sử dụng tệp NuGet.targets.

Cá nhân tôi sẽ sử dụng tùy chọn menu Khôi phục NuGet Gói và không sử dụng tệp NuGet.targets. Một điều bạn bị mất ở đây là kích hoạt khôi phục gói trên mọi bản dựng tuy nhiên bạn chỉ cần thực hiện một lần. Bạn cũng nhận được một số lợi ích khi sử dụng phương pháp này:

  1. Dự án của bạn không cần phải sửa đổi.
  2. Tất cả các gói NuGet sẽ được khôi phục trước khi XBuild được chạy sao cho bất kỳ gói NuGet nào có nhập XBuild tùy chỉnh của riêng chúng sẽ được khôi phục và có sẵn tại thời gian biên dịch.
+3

tại sao không triển khai? – JarrettV

+0

Nhóm NuGet đề xuất rằng việc khôi phục NuGet nên được sử dụng thay vì sử dụng tệp NuGet.targets. Phiên bản mới nhất của NuGet sẽ tự động khôi phục các gói NuGet khi biên dịch mà không yêu cầu tệp NuGet.targets. Vì vậy, điều này có thể được thực hiện trong Addin Xamarin Studio. Nhược điểm là addin sẽ cần phải được nạp lúc khởi động để phát hiện bất kỳ sự kiện xây dựng nào. Đây là lý do tôi chỉ thêm hỗ trợ cho việc khôi phục được kích hoạt thông qua một menu. –

3

Hoặc bạn có thể sử dụng khôi phục gói mới trong 2.7. Chỉ cần chạy

nuget.exe restore <your_solution_file> 

để khôi phục tất cả các gói được sử dụng bởi các dự án trong giải pháp.

Xem http://docs.nuget.org/docs/reference/package-restore để biết chi tiết.

+0

Theo như tôi có thể nói điều này không làm việc trên Mono, đó là những gì OP đã nói về. Khôi phục gói chống lại .sln được gọi cụ thể trong tài liệu nuget chưa hoạt động trong Mono - http://docs.nuget.org/consume/compatibility – piers7

+0

"nuget restore solution.sln" Làm việc cho tôi bằng mono với NuGet 3.3, nhưng không dành cho kho lưu trữ cục bộ (thư mục). Tất nhiên repos địa phương không làm việc cho tôi từ GUI hoặc như vậy ... – tekHedd

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