Không thể truy cập nguồn khi sử dụng Bảng điều khiển Trình quản lý gói NuGet


153

Chúng tôi đang chuyển quản lý gói của mình từ các tệp cập nhật thủ công sang NuGet. Tôi đang cố gắng cài đặt các phiên bản cũ hơn của các gói để phù hợp với phiên bản mà chúng tôi đã có trong kiểm soát nguồn. Không có cách nào để làm điều này từ UI nên tôi sử dụng dòng lệnh để có được phiên bản phù hợp.

Vì một số lý do, hãy Install-Packagetiếp tục nói với tôi rằng bộ sưu tập nuget là không thể truy cập được.

Nguồn tại nuget.org [ https://www.nuget.org/api/v2/] không thể truy cập được. Rơi lại vào NuGet Local Cache

Điều này chỉ xảy ra trong một trong những giải pháp của chúng tôi. Nếu tôi tạo một giải pháp mới hoặc sử dụng một giải pháp khác trong cùng một kho lưu trữ, các gói sẽ cài đặt như mong đợi. Tôi thậm chí có thể cài đặt các gói trong một giải pháp giả để điền vào bộ đệm cục bộ và sau đó cài đặt chúng thành công trong giải pháp bị lỗi. Tôi đã thử Invoke-WebRequestvào url từ Bảng điều khiển NuGet và tôi nhận được HTTP 200.

Điều gì có thể gây ra điều này? Có cách nào để ghi đè các nguồn gói trên cơ sở cho mỗi giải pháp / dự án không?


3
Tôi đang có vấn đề tương tự. Tôi đã cài đặt VS 2013 Update 2 ngày hôm qua, có lẽ đây là một lỗi mới ...? Btw, tôi có thể cài đặt bất kỳ gói nào thông qua hộp thoại "Quản lý gói NuGet" mà không gặp vấn đề gì, sự cố này chỉ xảy ra trên Bảng điều khiển quản lý gói.
rsenna

2
Tôi đã có cùng một vấn đề. Luôn hoạt động trong hộp thoại Quản lý gói - không bao giờ hoạt động trong Bảng điều khiển quản lý gói.
David Tansey

10
Khởi động lại Visual Studio đã sửa lỗi này cho tôi _ಠ
Chris Marisic

Câu trả lời:


338

Mặc dù Nguồn gói của tôi được đặt thành nuget.org trong Bảng điều khiển quản lý gói, nhưng rõ ràng việc thêm -Source nuget.orgđối số đã sửa lỗi này cho tôi.

Vì vậy, một ví dụ về việc sử dụng sẽ là:

Install-Package Akka.net -Source nuget.org

Akka.net là gói của bạn mà bạn muốn cài đặt, nó chỉ là một ví dụ ở đây.


1
Tôi khởi động lại PC và Visual Studio. nhưng .. thêm -Source nuget.org thực sự đã tạo ra mánh khóe cho trường hợp .vbproj mới của tôi bên trong đa dự án hiện tại của tôi
.sln

Nơi để thêm đối số này và làm thế nào? Bạn có thể vui lòng cho biết thêm thông tin.
Radenko Zec

Nó cũng làm việc cho tôi (ngay bây giờ, thực sự!). Tôi đã cố gắng cài đặt một phiên bản cũ hơn của jQuery, nhưng nó vẫn phát sinh lỗi: "Nguồn tại nuget.org [ nuget.org/api/v2/] ". Tôi không biết làm thế nào để sửa nó mặc dù.
Lâu đài

cảm ơn bạn, tôi đã làm theo cách này:Install-Package jQuery.UI.Combined -Source nuget.org
shaijut

7
Bạn có biết làm thế nào điều này làm việc? Tôi chỉ tò mò vì điều này không có ý nghĩa gì với tôi ngay cả khi nó hoạt động. Vì vậy, lỗi cho biết Nguồn tại nuget.org [ nuget.org/api/v2/] là không thể truy cập và sau đó tôi chỉ định cùng một nguồn -Source nuget.orgvà nó hoạt động?
Vladimir

10

Tôi đã phải sao chép nguồn NuGet mặc định trong các tùy chọn của Visual Studio. Với nguồn được sao chép, tôi đã thay đổi URL từ httpsthành http. Điều này giải quyết vấn đề cho tôi.

Tín dụng cho đề xuất này thuộc về đây: https://nuget.codeplex.com/discussions/561075#PostDetailsCell_1354351 , cho "jpharris4".


Đây là một điểm rất tốt. NuGet có thể nhạy cảm với xác nhận chứng chỉ.
Etienne Maheu

6

Tôi không chắc điều gì có thể gây ra sự cố của bạn, nhưng thực sự có một cách để ghi đè nguồn gói trên cơ sở mỗi giải pháp, nhưng chỉ khi bạn đã bật Khôi phục gói NuGet trên giải pháp đã cho.

Khi một giải pháp đã kích hoạt Gói NuGet Khôi phục thư mục có tên ".nuget" sẽ được thêm vào giải pháp. Bên dưới đây sẽ là một tệp có tên "NuGet.target" có Itemgroup có Điều kiện là "'$ (Gói nguồn)' == ''" giống như tệp bạn sẽ thấy trong hình ảnh đính kèm.

Nếu ItemGroup là rỗng (hoặc hoàn toàn nhận xét ra, như trong hình minh họa) thì giải pháp sẽ sử dụng một tập tin cụ thể mà nên được giống như các nguồn được liệt kê dưới CỤ >> OPTIONS. Nhưng nếu bạn bỏ ghi chú hoặc thêm các mục Gói nguồn vào Mục nhóm đó, giải pháp sẽ tìm kiếm các nguồn gói được liệt kê và CHỈ các mục được liệt kê.

Nội dung của tệp Nuget.target


2
Các nguồn gói được xác định trong tệp NuGet.target chỉ ảnh hưởng đến các nguồn được sử dụng trong quá trình xây dựng khi gói được khôi phục. Các nguồn gói trong tệp NuGet.config trong thư mục .nuget sẽ ảnh hưởng đến các nguồn gói có sẵn cho một dự án trong Visual Studio.
Matt Ward

Tôi đã kích hoạt khôi phục gói cho giải pháp này. Itemgroup được cấu hình giống như trong ảnh chụp màn hình của bạn mà tôi giả sử là cài đặt mặc định nên tôi không nghĩ đây là vấn đề. Tuy nhiên, khôi phục gói đã được kích hoạt từ lâu và tệp đích đã thay đổi kể từ đó. Tôi đã thử cập nhật các tệp đó lên phiên bản mới nhất bằng cách xóa chúng và kích hoạt lại khôi phục gói và có vẻ như nó đã giải quyết được vấn đề.
Etienne Maheu

Hay không. Ban đầu nó hoạt động, nhưng sau khi khôi phục các gói cho giải pháp và khởi động lại studio hình ảnh, vấn đề đã trở lại.
Etienne Maheu

Một vài câu hỏi làm rõ: 1) Bạn có các phiên bản phù hợp được tham chiếu trong gói.config không? 2) Bạn đã xác nhận rằng phiên bản bạn đang tìm kiếm vẫn còn tồn tại trên máy chủ NuGet chưa? 3) Bạn đã làm sạch dung dịch và sau đó xây dựng lại sau khi hoàn thành 1) và 2) chưa?
Chuyên gia đa khoa

1
Nếu đó là bất kỳ sự an ủi nào - tôi gặp vấn đề này nhưng chỉ trên PC làm việc của tôi và nó xảy ra với hầu hết các dự án. Điều kỳ lạ là nó không liên tục khiến tôi phát điên!
Matt

6

Bạn cũng có thể thay đổi nguồn NuGet từ UI. Chỉ cần thay đổi nguồn NuGet thành phiên bản cũ hơn và nó sẽ hoạt động tốt.

nhập mô tả hình ảnh ở đây

Dường như vẫn còn một vài lỗi trong VS 2015 liên quan đến api.nuget.org (v3).


2

Trong Bảng điều khiển quản lý gói của tôi, tôi không thể thấy bất kỳ nguồn nào

Truy cập : Công cụ -> Tùy chọn -> Trình quản lý gói Nuget -> Nguồn gói

Tôi tìm thấy các nguồn. Bỏ chọn chúng và việc chúng kiểm tra lại chúng sẽ xuất hiện lại trong Bảng điều khiển quản lý gói của tôi


2

Tôi đã phải cung cấp dấu phẩy cùng với url đầy đủ như Install-Package MySql.Data.Entity -Version 6.9.8 -Source http://www.nuget.org/api/v2


1

Trong trường hợp của tôi nguyên nhân là gói đã có một thỏa thuận. Thông qua giao diện người dùng - "Quản lý gói NuGet", bạn có tùy chọn chấp nhận và tiếp tục.

Bảng điều khiển quản lý gói trong VS 2013 dường như có vấn đề với điều này. Như những người khác đã nói khởi động lại VS 2013 có thể giải quyết nó cho giao diện điều khiển.


1

Điều này hiệu quả với tôi trong VS 2015 prof: Công cụ -> Tùy chọn -> Trình quản lý gói Nuget -> Nguồn gói

  1. Nhấn nút Thêm
  2. Chỉnh sửa trong Tên nhãn: nuget.org
  3. Chỉnh sửa trong nhãn Nguồn: https://www.nuget.org/api/v2/
  4. nhấn OK

Hy vọng nó giúp ;)


Đối với VS 2015, bạn nên sử dụng v3 trong danh sách của họ ... không phải v2! Lấy từ trang chủ của họ NuGet feed v3 (VS 2015 / NuGet v3.x): api.nuget.org/v3/index.json NuGet feed v2 (VS 2013 trở về trước / NuGet 2.x): nuget.org/api/v2
Paul Zahra

0

Tôi đã có cùng một vấn đề với cùng một thông điệp. Nhưng lý do của vấn đề của tôi là mất kết nối với TFS. Máy chủ TFS của tôi được lưu trữ trong mạng khác và tôi đã sử dụng VPN để truy cập vào nó. Khi tôi cố cài đặt gói mà không thiết lập kết nối với TFS (VPN đã bị tắt), tôi cũng gặp vấn đề tương tự.

Hãy nhận biết hành vi TFS này.


0

Xảy ra vì bạn làm việc ở chế độ ngoại tuyến, khi bạn kết nối lại mạng sẽ cần phải đăng xuất và đăng nhập lại. Quản lý gói sẽ khởi tạo lại trơn tru.


0

Tôi đã phải đối mặt với vấn đề này VS2013 và lãng phí 3 giờ.

Không chắc chắn nguyên nhân của vấn đề là gì. Nhưng không có giải pháp nào ở trên làm việc cho tôi.

Cài đặt lại giao diện điều khiển Nuget Gói Manager làm việc cho tôi.

Công cụ -> Tiện ích mở rộng và cập nhật -> Dưới tất cả Tìm kiếm Trình quản lý gói Nuget cho Visual Studio và nhấn gỡ cài đặt.

Truy cập https://marketplace.visualstudio.com/items?itemName=NuGetTeam.NuGetPackageManagerforVisualStudio2013 và tải xuống tiện ích mở rộng.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.