Я только что создал проект MVC5 и добавил несколько пакетов из nuget, но затем, когда я скомпилировал проект, я получил эту ошибку. Похоже, один из пакетов действительно зависит от system.web.http версии 5.2.3.0, которую я нигде не мог найти. Интересно, а как получить последнюю версию system.web.http?
Ошибка 2 Сборка 'System.Web.Http.WebHost, Version = 5.2.3.0, Culture = нейтральный, PublicKeyToken = 31bf3856ad364e35' использует 'System.Web.Http, Version = 5.2.3.0, Culture = нейтральный, PublicKeyToken = 31bf3856ad364e35', который имеет версия выше, чем указанная сборка 'System.Web.Http, Version = 5.0.0.0, Culture = нейтральный, PublicKeyToken = 31bf3856ad364e35'
d: \ Backup 2014-12-25 \ Website-Projects \ www.ptsol.com.au \ packages \ Microsoft.AspNet.WebApi.WebHost.5.2.3 \ lib \ net45 \ System.Web.Http.WebHost.dll
asp.net-mvc
asp.net-mvc-5
nuget
Джон Хадикусумо
источник
источник
Один из способов исправить это - изменить перенаправление сборки в файле 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
. По-прежнему не имеет смысла для меня, потому что следует использовать DLL пакета NuGet, а не версию GAC, но эй, это сработало ... так что спасибо!Я сделал
Install-Package Microsoft.AspNet.WebApi.Core -version 5.2.3
это, но все равно не сработало. Затем заглянул в папку bin моего проекта и увидел, что там все еще был старый файл System.Web.Mvc.Поэтому я вручную скопировал новый файл из пакета в папку bin. Потом я снова заработал.
источник
Установочный пакет Microsoft.AspNet.WebApi.Core -version 5.2.3
Затем в проекте Добавить ссылку -> Обзор. Нажмите кнопку обзора и перейдите к C: \ Users \ UserName \ Documents \ Visual Studio 2015 \ Projects \ ProjectName \ packages \ Microsoft.AspNet.Mvc.5.2.3 \ lib \ net45 и добавьте необходимый файл .dll.
источник
Установленные вами пакеты представили зависимости для 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
источник
У меня сработало удаление и повторная установка пакета NuGet.
Выполните это в консоли диспетчера пакетов:
UnInstall-Package Microsoft.AspNet.WebApi.Core -version 5.2.3
Install-Package Microsoft.AspNet.WebApi.Core -version 5.2.3
источник