Di mana saya dapat menemukan paket NuGet untuk meningkatkan ke System.Web.Http v5.0.0.0?


125

Baru saja memutakhirkan proyek ASP.NET MVC4 untuk menggunakan Unity.WebApi versi 5.0.0.0 dan membutuhkan System.Web.Http v 5.0.0.0 sesuai dengan kesalahan berikut:

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'   

Saat ini saya mereferensikan System.Web.Http v4.0 tetapi memiliki paket NuGet berikut ditingkatkan ke versi terbaru masing-masing:

  • ANTLRv3

  • Penyedia Universal Microsoft ASP.NET

  • Infrastruktur Microsoft.Web

  • Microsoft ASP.NET MVC

  • Microsoft ASP.NET Razor

  • Perpustakaan Inti Penyedia Universal Microsoft ASP.NET

  • Penyedia Universal Microsoft ASP.NET

  • Klien Microsoft ASP.NET Web API 2

  • Microsoft ASP.NET Web API 2 Core

  • Host Web Microsoft ASP.NET Web API 2

  • Microsoft ASP.NET Web API 2

  • Halaman Web Microsoft ASP.NET

  • Infrastruktur Microsoft.Web

  • WebGrease

    melalui NuGet. Saya belum mencantumkan pustaka JavaScript yang relevan seperti Micrososft.jQuery.Unobtrusive Validation, dll.

Apa paket NuGet untuk memutakhirkan System.Web.Http atau apakah saya harus melakukan ini secara manual?


Jika Anda memilih "Include Prerelease" dan bukan "Stable" di Package Manager NuGet, Anda akan melihat System.Web.Http. Itukah yang kamu cari?
William

apakah saya seharusnya mencari System.Web.Http setelah memilih "Sertakan Prerelease"? Atau ke mana saya harus mencari?
Klaus Nji

Abaikan komentar saya di atas! Paket itu sudah usang. Anda harus mencoba mengikuti saran Stjin di bawah ini. Anehnya, ketika saya menginstal Unity.WebApi di proyek MVC 4 saya , ia memperbarui referensi System.Web.Http ke v5.0 secara otomatis, jadi saya tidak yakin mengapa itu tidak bekerja untuk Anda. Jika semuanya gagal, Anda dapat mencoba menghapus paket Unity dan menginstalnya kembali.
William

Jawaban:


206

Anda memerlukan paket Microsoft.AspNet.WebApi.Core .

Anda dapat melihatnya di file .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>

Saya memiliki Microsoft ASP.NET Web API 2 Core (id = Microsoft.AspNet.WebApi.Core) ditingkatkan ke v5.0.0.0 seperti yang tercantum di atas. Sepertinya saya perlu menghapus dan menambahkannya kembali?
Klaus Nji

7
Harus juga membersihkan, menghapus bin_deployableAssemblies dan membangun kembali.
Klaus Nji

Memiliki proyek yang hampir sama persis. Di mana folder Assemblies bin_deployable yang terus dibicarakan semua orang?
nzondlo

@ nzondlo Saya yakin folder tersebut dibuat saat Menerbitkan aplikasi. Namun tidak sepenuhnya yakin.
user247702

1
@nzondlo bin_deployableAssemblieshanya folder biasa, tetapi mendapat perlakuan khusus ketika ada di direktori proyek Anda. File .dll dalam folder itu disalin ke direktori tempat sampah ketika Anda menerbitkan aplikasi web Anda. Itu digunakan untuk menyebarkan System.Web.Mvc dll (dan lain-lain) dengan aplikasi web Anda sebelum NuGet menjadi arus utama.
Steven Liekens

9

Saya punya beberapa proyek dalam solusi. Untuk beberapa proyek, saya sebelumnya menambahkan referensi secara manual. Ketika saya menggunakan NuGet untuk memperbarui paket WebAPI, referensi itu tidak diperbarui secara otomatis.

Saya menemukan bahwa saya dapat secara manual memperbarui referensi tersebut sehingga mereka menunjuk ke v5 DLL di dalam folder Packages dari solusi saya atau melakukan hal berikut.

  1. Pergi ke "Kelola Paket NuGet"
  2. Pilih Paket Terpasang "Microsoft ASP.NET Web API 2.1"
  3. Klik Kelola dan periksa proyek yang saya tambahkan secara manual sebelumnya.

Menghapus instalasi paket dan kemudian segera menginstalnya memperbaikinya untuk saya. Terjadi ketika membawa proyek pada mesin pengembangan yang berbeda. Pemulihan paket otomatis mendapatkan versi yang salah.
Matt J.

1
Masalah utama adalah memperbarui Web.Api untuk proyek utama tetapi proyek yang direferensikan masih menggunakan versi yang lebih lama. Itu harus diperbarui bersama melalui mengklik kanan nama Solusi dan menu Kelola Paket Nuget seperti yang disebutkan @Tony. Bersulang!
Orhaan

Instal-Paket Microsoft.AspNet.WebApi.Core
C Sharper
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.