2012-03-30 28 views
15

SCENARIONuGet - quản lý và gỡ bỏ phiên bản gói đa trong dung đơn

Một VS giải pháp với n dự án. Dự án Một gói tham chiếu Y v1, Dự án B tham chiếu gói Y v2. Bây giờ không thể cập nhật tất cả các tham chiếu đến gói Y cho tất cả các dự án trong giải pháp bằng cách sử dụng hộp thoại quản lý gói NuGet ở cấp giải pháp, chỉ có thể thực hiện điều này khi tất cả các dự án tham chiếu cùng phiên bản gói Y. Không lớn đối phó với chỉ có hai dự án, nhưng tôi đang đối phó với rất nhiều dự án thông qua quản lý gói kém đang tham chiếu nhiều phiên bản gói khi tất cả chúng nên tham chiếu cùng một phiên bản.

Trước khi tôi dành buổi chiều viết một ứng dụng giao diện điều khiển. để tự động cập nhật tất cả các tệp package.config cho một giải pháp sao cho mỗi gói được tham chiếu chỉ được tham chiếu qua phiên bản mới nhất của nó (tham chiếu mới nhất, không phải mới nhất, với ngoại lệ/hãy cẩn thận vv) .... có một công cụ/phương pháp để làm điều này đã? Hoặc một số cách tiếp cận khác mà tôi không biết?

+0

thứ sáu buổi chiều là thời gian tuyệt vời cho điều này! – Bond

+0

Bạn đã thử dùng sed hay awk chưa? –

+0

hoặc powershell !! –

Trả lời

10

Bạn có thể thực hiện việc này trong Trình quản lý gói của Nuget cho giải pháp (Để tìm trình đơn, nhấp chuột phải vào giải pháp hoặc vào Tools-> Library Package Manager). Tab Cập nhật trong hộp thoại này sẽ đề xuất cập nhật cho nhiều dự án có thể áp dụng bản cập nhật. Điều tương tự cũng áp dụng với việc gỡ cài đặt từ tab Đã cài đặt.

Hoặc với giải pháp đã mở, hãy mở Bảng điều khiển NuGet, chạy "Update-Package" để cập nhật tất cả các gói cho tất cả các dự án. Nó cũng có thể làm việc để cập nhật các gói cụ thể/dự án:

Update-Package [-Id] <string> [-IgnoreDependencies] [-ProjectName <string>] [-Version <string>] [-Safe] [-Source <string>] [-IncludePrerelease] 

nó sẽ tìm các bản cập nhật cùng hơn trong hộp thoại, chỉ cần đảm bảo thức ăn phải (hoặc "Tất cả") được chọn trong "Gói Nguồn:" thả xuống .

dụ:

PM> install-package NUnit -version 2.5.9.10348 -ProjectName ProjectA 
Successfully installed 'NUnit 2.5.9.10348'. 
Successfully added 'NUnit 2.5.9.10348' to ProjectA. 

PM> install-package NUnit -version 2.5.10.11092 -ProjectName ProjectB 
Successfully installed 'NUnit 2.5.10.11092'. 
Successfully added 'NUnit 2.5.10.11092' to ProjectB. 

PM> update-package 
Updating 'NUnit' from version '2.5.9.10348' to '2.6.0.12054' in project 'ProjectA'. 
Successfully removed 'NUnit 2.5.9.10348' from ProjectA. 
Successfully installed 'NUnit 2.6.0.12054'. 
Successfully added 'NUnit 2.6.0.12054' to ProjectA. 
Successfully uninstalled 'NUnit 2.5.9.10348'. 
Updating 'NUnit' from version '2.5.10.11092' to '2.6.0.12054' in project 'ProjectB'. 
Successfully removed 'NUnit 2.5.10.11092' from ProjectB. 
Successfully added 'NUnit 2.6.0.12054' to ProjectB. 
Successfully uninstalled 'NUnit 2.5.10.11092'. 
2

Thứ nhất, chỉ thay đổi tệp xml là không đủ để NuGet thay đổi tham chiếu. Trong thực tế, đôi khi bạn nhận được lỗi khi bạn sửa đổi các tập tin packages.config bằng tay. gói quản lý giao diện điều khiển có khả năng cập nhật tất cả các gói trong giải pháp; bạn chỉ cần gọi lệnh "Get-Project -All | Update-Package".

Và thứ hai, trước khi gọi lệnh này, hãy đảm bảo bạn có sẵn nguồn gói thích hợp.

+0

Và thứ hai ... – Steven

+0

Lệnh giao diện điều khiển đó báo cáo không có bản cập nhật nào cho tất cả các gói trong mọi giải pháp trong giải pháp nhưng có cập nhật và tôi có thể cập nhật từng cái một thông qua hộp thoại. –

+0

để tôi kiểm tra lại. – daryal

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