Làm thế nào để lấy 'System.Web.Http, Version = 5.2.3.0?


88

Tôi vừa tạo một dự án MVC5 và thêm một số gói từ nuget, nhưng sau đó khi tôi biên dịch dự án, tôi gặp lỗi này. Có vẻ như một trong những gói thực sự phụ thuộc vào system.web.http phiên bản 5.2.3.0, mà tôi không thể tìm thấy ở đâu. Tôi chỉ tự hỏi làm thế nào để tải xuống phiên bản system.web.http mới nhất?

Lỗi 2 Assembly 'System.Web.Http.WebHost, Version = 5.2.3.0, Culture = trung lập, PublicKeyToken = 31bf3856ad364e35' sử dụng 'System.Web.Http, Version = 5.2.3.0, Culture = trung lập, PublicKeyToken = 31bf3856ad364e35' có phiên bản cao hơn so với assembly được tham chiếu 'System.Web.Http, Version = 5.0.0.0, Culture = trung lập, PublicKeyToken = 31bf3856ad364e35' 
d: \ Backup 2014-12-25 \ Website-Projects \ www.ptsol.com.au \ package \ Microsoft.AspNet.WebApi.WebHost.5.2.3 \ lib \ net45 \ System.Web.Http.WebHost.dll

Câu trả lời:


117

Trong Bảng điều khiển Trình quản lý Gói

Install-Package Microsoft.AspNet.WebApi.Core -version 5.2.3


Tôi đã làm nhưng vẫn gặp lỗi tương tự <br/> <pre> PM> install-package microsoft.aspnet.webapi.core -version 5.2.3 Cố gắng giải quyết sự phụ thuộc 'Microsoft.AspNet.WebApi.Client (≥ 5.2.3 ) '. Đang cố gắng giải quyết sự phụ thuộc 'Newtonsoft.Json (≥ 6.0.4)'. 'Microsoft.AspNet.WebApi.Core 5.2.3' đã được cài đặt. www.ptsol.com.au đã có tham chiếu đến 'Microsoft.AspNet.WebApi.Core 5.2.3'. </pre>
John Hadikusumo 19/02/15

4
@JohnHadikusumo làm điều này cho tất cả các dự án của bạn. Có vẻ như bạn có một dự án phụ thuộc với phiên bản cũ hơn.
Rap

Có, điều này sẽ hoạt động. Hãy đọc kỹ Web.config và package.config của bạn trước và sau khi bạn chạy lệnh này và bạn sẽ thấy những gì đã thay đổi.
AlfredBr

Đã giải quyết vấn đề của tôi.
Phon Soyang

19

Một cách để khắc phục là sửa đổi chuyển hướng lắp ráp trong tệp web.config.

Sửa đổi những điều sau:

<dependentAssembly>
        <assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
</dependentAssembly>

đến

<dependentAssembly>
        <assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="4.0.0.0" />
</dependentAssembly>

Vì vậy, thuộc tính oldVersion nên thay đổi từ "...- 4.0.0.0" thành "...- 5.2.3.0".


Điều này đã làm việc cho tôi. Chúng tôi đã bindingRedirectthiết lập <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />nhưng đã thay đổi nó để sử dụng 4.0.0.0. Vẫn không hợp lý với tôi, vì lẽ ra phải sử dụng gói NuGet DLL chứ không phải phiên bản GAC, nhưng hey, nó đã hoạt động ... vì vậy, cảm ơn!
jamiebarrow

8

Tôi đã làm Install-Package Microsoft.AspNet.WebApi.Core -version 5.2.3nhưng nó vẫn không hoạt động. Sau đó, nhìn vào thư mục bin dự án của tôi và thấy rằng nó vẫn có tệp System.Web.Mvc cũ.

Vì vậy, tôi đã sao chép thủ công tệp mới hơn từ gói vào thư mục bin. Sau đó, tôi đã đứng lên và chạy lại.


7

Gói cài đặt Microsoft.AspNet.WebApi.Core -version 5.2.3

Sau đó, trong dự án Thêm tài liệu tham khảo -> Duyệt qua. Nhấn nút duyệt và đi tới C: \ Users \ UserName \ Documents \ Visual Studio 2015 \ Projects \ ProjectName \ package \ Microsoft.AspNet.Mvc.5.2.3 \ lib \ net45 và thêm tệp .dll cần thiết


7

Các gói bạn đã cài đặt đã giới thiệu các phụ thuộc vào dll phiên bản 5.2.3.0 như Bracher của người dùng đã hiển thị ở trên. Microsoft.AspNet.WebApi.Cors là một gói ví dụ. Con đường tôi thực hiện là cập nhật quy trình dự án MVC cho bất kỳ cài đặt gói nào:

Install-Package Microsoft.AspNet.Mvc -Version 5.2.3

https://www.nuget.org/packages/microsoft.aspnet.mvc


3

Gỡ cài đặt và cài đặt lại gói NuGet phù hợp với tôi.

  1. Xóa mọi tham chiếu cũ khỏi dự án.

Thực thi điều này trong Bảng điều khiển Trình quản lý Gói:

  1. UnInstall-Package Microsoft.AspNet.WebApi.Core -version 5.2.3
  2. Install-Package Microsoft.AspNet.WebApi.Core -version 5.2.3

Chỉ cái này đã giải quyết được vấn đề của tôi. Tôi đã làm rất nhiều và win-action quá đơn giản.
George Lanetz
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.