2016-10-12 13 views
8

Tôi đã cập nhật một thư viện của lớp là project.json để nhắm mục tiêu netstandard1.3net64.Phụ thuộc được chỉ định là X nhưng đã kết thúc bằng Y

Với sự thay đổi đó:

$ dotnet restore 
log : Restoring packages 
warn : Dependency specified was NETStandard.Library (>= 1.3.0) but ended up with 
     NETStandard.Library 1.6.0. 

tôi xuất bản một thư viện và thực sự cần phải nhắm mục tiêu netstandard1.3/net46.

Làm cách nào để chẩn đoán tại sao phiên bản cao hơn đang được sử dụng?

Trả lời

6

Tôi tiếp tục với điều này trên NuGet issue và @emgarten chỉ ra rằng gói NETStandard.Library chỉ có phiên bản 1.6.0, nhưng phiên bản 1.6.0 đó chứa cụm từ netstandard1.3.

Vì vậy, trong trường hợp này, phiên bản 1.3 mà tôi yêu cầu không tồn tại ở bất kỳ nơi nào và cảnh báo là thông báo rằng phiên bản đó sử dụng phiên bản cao hơn thay thế.

Chẩn đoán vẫn có thể mang tính thông tin hơn. Bạn có thể vote on the issue nếu nó cũng đi bạn và bạn muốn thấy nó rõ ràng hơn.

1

Khi bạn không giao dịch với NuGet, nhưng giống như trong trường hợp của tôi dự án của riêng bạn, lỗi này cũng có thể xảy ra.

Điều đầu tiên bạn muốn làm là đảm bảo bạn có phiên bản chính xác được giới thiệu trong số Solution Items -> global.json.

Sau đó, bạn có thể cần phải làm mới mỗi project.json giới thiệu dự án này, vì VS2015 không phải lúc nào mới đúng:

  1. Mở project.json và cắt đường dây đưa ra các cảnh báo
  2. Lưu file và chờ cho 'Khôi phục trọn gói ... thông báo' biến mất
  3. Paste dòng lệnh sau trong
  4. Lưu tập tin một lần nữa

Một cách khác để buộc làm mới là bằng cách chạy dotnet restore --no-cache ở cấp độ giải pháp hoặc dự án.

0

Tôi gặp sự cố này khi dự án thư viện chung nằm trong nhiều giải pháp.

Vị trí thư mục của dự án thư viện đã được thay đổi và tệp global.json đã được cập nhật trong một giải pháp.

Mặt khác, tệp sln được cập nhật cho vị trí tệp mới của dự án. Tuy nhiên, global.json thì không. Khi dự án đã được chuyển đến một thư mục cao hơn, tệp global.json cũ đã tham chiếu đến một vị trí quá cụ thể.

0

Đối với tôi, chỉ cần xóa tệp khóa (project.lock.json) đã hoạt động. Sau khi xóa tập tin này, Nuget tự động khôi phục tất cả các gói và sự cố đã biến mất.

Disclaimer

Mặc dù nó làm việc cho tôi, tôi không chắc chắn nếu điều này là một cách sâu sắc về làm những điều mà sẽ làm việc cho tất cả mọi người. Vì vậy, hãy lưu ý những gì bạn đang làm trước khi xóa tệp này.

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