Tôi có thể tìm gói NuGet ở đâu để nâng cấp lên System.Web.Http v5.0.0.0?


125

Chỉ cần nâng cấp một dự án ASP.NET MVC4 để sử dụng Unity.WebApi phiên bản 5.0.0.0 và nó yêu cầu System.Web.Http v 5.0.0.0 theo lỗi sau:

Assembly 'Unity.WebApi, Version=5.1.0.0, Culture=neutral, PublicKeyToken=43da31bc42a85347' uses 'System.Web.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' which has a higher version than referenced assembly 'System.Web.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'   

Tôi hiện đang tham khảo System.Web.Http v4.0 nhưng có các gói NuGet sau được nâng cấp lên phiên bản mới nhất tương ứng:

  • ANTLRv3

  • Nhà cung cấp phổ biến Microsoft ASP.NET

  • Microsoft.Web.Infr Hạ tầng

  • Microsoft ASP.NET MVC

  • Microsoft ASP.NET Dao cạo

  • Microsoft ASP.NET Universal Providers Thư viện lõi

  • Nhà cung cấp phổ biến Microsoft ASP.NET

  • Máy khách Microsoft ASP.NET Web API 2

  • Microsoft ASP.NET Web API 2 Lõi

  • Máy chủ web Microsoft ASP.NET Web API 2

  • API web ASP.NET của Microsoft 2

  • Trang web Microsoft ASP.NET

  • Microsoft.Web.Infr Hạ tầng

  • WebGreas

    thông qua NuGet. Tôi chưa liệt kê các thư viện JavaScript có liên quan như micrososft.jQuery. Xác thực hợp lệ, v.v.

Gói NuGet để nâng cấp System.Web.Http là gì hoặc tôi phải làm điều này bằng tay?


Nếu bạn chọn "Bao gồm phát hành trước" thay vì "Ổn định" trong Trình quản lý gói NuGet, bạn sẽ thấy System.Web.Http. Có phải đó là những gì bạn đang tìm kiếm?
William

Tôi có nên tìm kiếm System.Web.Http sau khi chọn "Bao gồm phát hành trước" không? Hay tôi nên tìm ở đâu?
Klaus Nji

Bỏ qua nhận xét trên của tôi! Gói đó đã lỗi thời. Bạn nên cố gắng làm theo gợi ý của Stjin bên dưới. Thật kỳ lạ, khi tôi cài đặt Unity.WebApi trong dự án MVC 4 của mình , nó sẽ tự động cập nhật tham chiếu System.Web.Http thành v5.0, vì vậy tôi không chắc tại sao nó không hoạt động cho bạn. Nếu vẫn thất bại, bạn có thể thử gỡ cài đặt gói Unity và cài đặt lại.
William

Câu trả lời:


206

Bạn cần gói Microsoft.AspNet.WebApi.Core .

Bạn có thể thấy nó trong tệp .csproj:

<Reference Include="System.Web.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>..\packages\Microsoft.AspNet.WebApi.Core.5.0.0\lib\net45\System.Web.Http.dll</HintPath>
</Reference>

Tôi có Microsoft ASP.NET Web API 2 Core (id = Microsoft.AspNet.WebApi.Core) được nâng cấp lên v5.0.0.0 như được liệt kê ở trên. Hình như tôi cần phải loại bỏ và thêm lại chúng?
Klaus Nji

7
Cũng phải dọn dẹp, xóa bin_deployableAssemblies và xây dựng lại.
Klaus Nji

Có gần như cùng một dự án. Thư mục lắp ráp bin_deployable mà mọi người cứ nói đến ở đâu?
nzondlo

@nzondlo Tôi tin rằng thư mục đó được tạo khi Xuất bản ứng dụng. Không hoàn toàn chắc chắn mặc dù.
user247702

1
@nzondlo bin_deployableAssemblieschỉ là một thư mục thông thường, nhưng nó được xử lý đặc biệt khi nó tồn tại trong thư mục dự án của bạn. Bất kỳ tệp dll nào trong thư mục đó được sao chép vào thư mục bin khi bạn xuất bản ứng dụng web của mình. Nó được sử dụng để triển khai dll System.Web.Mvc (và các ứng dụng khác) với ứng dụng web của bạn trước khi NuGet trở thành xu hướng.
Steven Liekens

9

Tôi có một vài dự án trong một giải pháp. Đối với một số dự án, trước đây tôi đã thêm các tài liệu tham khảo theo cách thủ công. Khi tôi sử dụng NuGet để cập nhật gói WebAPI, các tham chiếu đó không được cập nhật tự động.

Tôi phát hiện ra rằng tôi có thể cập nhật thủ công các tham chiếu đó để chúng trỏ đến DLL v5 bên trong thư mục Gói của giải pháp của tôi hoặc làm như sau.

  1. Chuyển đến "Quản lý gói NuGet"
  2. Chọn Gói đã cài đặt "Microsoft ASP.NET Web API 2.1"
  3. Nhấp vào Quản lý và kiểm tra các dự án mà tôi đã thêm thủ công trước đó.

Gỡ cài đặt gói và sau đó ngay lập tức cài đặt lại nó sửa nó cho tôi. Đã xảy ra khi đưa dự án lên trên một cỗ máy phát triển khác. Tự động khôi phục gói có phiên bản sai.
Matt J.

1
Vấn đề chính là cập nhật Web.Api cho dự án chính nhưng các dự án được tham chiếu vẫn đang sử dụng phiên bản cũ hơn của nó. Nó sẽ được cập nhật cùng nhau thông qua nhấp chuột phải vào tên Giải pháp và trình đơn Quản lý Gói Nuget như @Tony đã đề cập. chúc mừng
Orhaan

Cài đặt-Gói Microsoft.AspNet.WebApi.Core
C Sharper
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.