Як отримати 'System.Web.Http, Версія = 5.2.3.0?


88

Я щойно створив проект MVC5 і додав кілька пакетів з nuget, але тоді, коли я скомпілював проект, я отримав цю помилку. Здається, один із пакунків насправді залежить від system.web.http версії 5.2.3.0, яку я ніде не зміг знайти. Мені просто цікаво, як отримати останню версію system.web.http?

Помилка 2 Асамблея 'System.Web.Http.WebHost, Версія = 5.2.3.0, Культура = нейтральна, PublicKeyToken = 31bf3856ad364e35' використовує 'System.Web.Http, Версія = 5.2.3.0, Культура = нейтральна, PublicKeyToken = 31bf3856ad364e35', яка має вища версія, ніж посилання на збірку 'System.Web.Http, Версія = 5.0.0.0, Культура = нейтральна, PublicKeyToken = 31bf3856ad364e35' 
d: \ Backup 2014-12-25 \ Website-Projects \ www.ptsol.com.au \ пакети \ Microsoft.AspNet.WebApi.WebHost.5.2.3 \ lib \ net45 \ System.Web.Http.WebHost.dll

Відповіді:


117

У консолі диспетчера пакетів

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


Я зробив, але все одно видав мені таку ж помилку <br/> <pre> PM> install-package microsoft.aspnet.webapi.core -version 5.2.3 Спроба вирішити залежність 'Microsoft.AspNet.WebApi.Client (≥ 5.2.3 ) '. Спроба вирішити залежність "Newtonsoft.Json (≥ 6.0.4)". "Microsoft.AspNet.WebApi.Core 5.2.3" уже встановлено. www.ptsol.com.au вже має посилання на "Microsoft.AspNet.WebApi.Core 5.2.3". </pre>
Джон Хадікусумо,

4
@JohnHadikusumo зробіть це для всіх своїх проектів. Схоже, у вас є залежний проект із старішою версією.
Реп

Так, це спрацює. Уважно прочитайте Web.config та package.config як до, так і після запуску цієї команди, і ви побачите, що змінилося.
АльфредБр,

Вирішив мою проблему.
Phon Soyang

19

Один із способів виправити це - зміна перенаправлення збірки у файлі web.config.

Змініть наступне:

<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>

до

<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>

Тож атрибут oldVersion повинен змінитися з "...- 4.0.0.0" на "...- 5.2.3.0".


Це спрацювало для мене. Ми bindingRedirectналаштували як, <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />але змінили його на використання 4.0.0.0. Мені все одно не має сенсу, бо слід використовувати пакет NuGet DLL, а не версію GAC, але привіт, це спрацювало ... тож спасибі!
jamiebarrow

8

Я зробив, Install-Package Microsoft.AspNet.WebApi.Core -version 5.2.3але це все одно не спрацювало. Потім заглянув до моєї папки bin проекту і побачив, що там все ще є старий файл System.Web.Mvc.

Тож я вручну скопіював новий файл із пакету в папку bin. Потім я знову піднявся і побіг.


7

Встановити-пакет Microsoft.AspNet.WebApi.Core -версія 5.2.3

Потім у проекті Додати посилання -> Переглянути. Натисніть кнопку перегляду та перейдіть до C: \ Users \ UserName \ Documents \ Visual Studio 2015 \ Projects \ ProjectName \ пакети \ Microsoft.AspNet.Mvc.5.2.3 \ lib \ net45 і додайте необхідний файл .dll


7

Встановлені вами пакети ввели залежності до DLL версії 5.2.3.0, як показав користувач Bracher. Microsoft.AspNet.WebApi.Cors - це приклад пакета. Шлях, яким я йду, полягає в тому, щоб оновити проект проекту MVC до будь-якого встановлення пакета:

Install-Package Microsoft.AspNet.Mvc -Version 5.2.3

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


3

Видалення та повторна інсталяція пакету NuGet у мене спрацювало.

  1. Видаліть із проекту будь-які старі посилання.

Виконайте це в консолі диспетчера пакетів:

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

Тільки цей вирішив мою проблему. Я зробив так багато, і перемоги були настільки простими.
Джордж Ланец
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.