14

Tôi có một môi trường hỗn hợp nơi một số nhà phát triển đang làm việc trên Visual Studio 2013 và những người khác đang làm việc vào năm 2015. Mọi thứ hoạt động tốt cho đến khi chúng tôi cập nhật gói NuGet được tham chiếu từ Visual Studio 2015.Làm thế nào để sử dụng NuGet 3.0 với Visual Studio 2013?

Bây giờ, khi cố gắng khôi phục gói NuGet từ Visual Studio 2013, tôi thấy các lỗi sau:

NuGet Package restore failed for project Foo: The 'System.Linq 4.0.0' package requires NuGet client version '3.0' or above, but the current NuGet version is '2.8.60723.765'..

Rõ ràng, không có phiên bản NuGet 3.x dành cho Visual Studio 2013.

có một giải pháp để tiếp tục làm việc với cả hai Visual Studio 2013 và 2015?

Trả lời

11

Như Hans Passant lưu ý trong câu trả lời của mình, không cần NuGet 3.0 trên các dự án chỉ nhắm mục tiêu khung khổ .NET 4.5 (và đó là những gì Visual Studio 2013 có nghĩa là nhắm mục tiêu trong trường hợp của chúng tôi).

Đó là sự bổ sung của một gói NuGet cập nhật, cụ thể System.Collections.Immutable 1.1.37, trong đó giới thiệu một sự phụ thuộc vào .NETPlatform,Version=v5.0, do đó gây ra sự phụ thuộc tình cờ trên NuGet 3,0.

Quay lại phiên bản 1.1.36 của gói đó đã giải quyết được sự cố.

+1

Tôi cần NuGet 3.0 trên VS 2013 vì 3. # hỗ trợ ContentFiles mà 2. # không: ( – Phill

+0

+1 Cảm ơn bạn, tôi đã có một vấn đề tương tự với mới Phiên bản của Moq, cài đặt một phiên bản trước của Moq mà không có sự phụ thuộc đó làm việc! Tôi kiên nhẫn chờ đội của mình nâng cấp lên 2015 ... – EaziLuizi

+0

Điều này không có ý nghĩa gì. NuGet 3 dường như có cấu trúc nguồn gói mới và có thể 3 [không xử lý tốt chính thức cũ] (https://github.com/NuGet/Home/issues/1909) Có 2 hỗ trợ cấu trúc mới? Nếu không, đó có vẻ như lý do đủ để nâng cấp. – jpmc26

12

Thở dài, một nhóm không thể quyết định về công cụ họ sử dụng, điều gì có thể xảy ra sai? Vâng điều này. Và một vấn đề khá khó chịu khác, gói đó dành cho các dự án nhắm vào CoreCLR và hương vị Win10 của các ứng dụng toàn cầu. Bạn không thể tạo và xây dựng một dự án như vậy trên VS2013. Vì vậy, cố gắng để giải quyết vấn đề phiên bản Nuget không mua cho bạn bất cứ điều gì.

Các bạn cần tập hợp và giải quyết những dự án bạn sẽ làm việc. Nếu CoreCLR là những gì mọi người muốn làm và hỏi tại sao, thì mọi người phải cập nhật lên VS2015.

+0

Hans, cảm ơn bạn đã trả lời. Tôi không biết rằng bằng cách nào đó chúng tôi đã buôn lậu sự phụ thuộc của CoreCLR vào dự án của chúng tôi. Đó không phải là cố ý chút nào, vì chúng tôi hiện đang xây dựng cho Win32. Để cung cấp một số đường dẫn tương lai cho Universal Apps, hầu hết mã của chúng tôi được xây dựng dưới dạng PCL, mặc dù; Tôi hỗ trợ rằng đây có lẽ là vấn đề ở đây đã kích hoạt sự phụ thuộc "NuGet 3.0". –

+0

Chúng tôi đã sử dụng System.Collections.Immutable 1.1.36 (cho .NET 4.5). Chuyển sang 1.1.37 đã giới thiệu sự phụ thuộc vào .NET 5.0, đây là một tai nạn. –

+0

http://stackoverflow.com/a/32189169/17034 –

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