Я недавно начал следовать этому руководству, чтобы перенести мой проект на .NET 4.5.1 и Web Api 2.
Самое первое, что MS разработчик Рик Андерсон просит вас сделать, это изменить:
WebApiConfig.Register(GlobalConfiguration.Configuration);
в
GlobalConfiguration.Configure(WebApiConfig.Register);
в файле global.asax. Тем не менее, это дает мне ошибку, когда я пытаюсь построить:
Ошибка 1 «System.Web.Http.GlobalConfiguration» не содержит определения «Настройка»
Мой проект в настоящее время работает на MVC 5 и Web Api 2 и .NET 4.5.1, но я думаю, что System.Web.Http по-прежнему считает, что это версия .NEt 4.0.
Как я могу исправить это?
Спасибо.
Редактировать:
Вот мои привязки сборки:
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31BF3856AD364E35" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0"/>
</dependentAssembly>
<!--
<dependentAssembly>
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="5.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="5.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages.Razor" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
</dependentAssembly> -->
</assemblyBinding>
Все закомментировано после того, как была прокомментирована вершина, потому что я получаю ошибку:
Предупреждение 2 Обнаружены конфликты между различными версиями одной и той же зависимой сборки, которые не удалось разрешить. Эти конфликты ссылок перечислены в журнале сборки, когда подробность журнала установлена на подробный.
и избавление от жестких привязок исправляло это.
Microsoft.AspNet.Web.Helpers.Mvc
сначала удалили ?Ответы:
Требуется system.web.http.webhost, который является частью этого пакета. Я исправил это, установив следующий пакет:
или найдите его в nuget https://www.nuget.org/packages/Microsoft.AspNet.WebApi.WebHost/5.1.0
источник
GlobalConfiguration.Configure(WebApiConfig.Register);
был вставлен в global.asax, на верх сразу после AreaRegistration, и он работал просто отлично.Microsoft.AspNet.WebApi.WebHost
до последней версииНи одна из этих идей не помогла моему проекту с использованием MVC 5.2.2.
Принудительная переустановка исправила проблему. Из консоли диспетчера пакетов NuGet:
update-Package -reinstall Microsoft.AspNet.WebApi.WebHost
источник
GlobalConfiguration
класс является частьюMicrosoft.AspNet.WebApi.WebHost
пакета nuget ... Вы обновили этот пакет до Web API 2?источник
А также с помощью консоли диспетчера пакетов, чтобы получить nuget для обновления проекта с помощью Install-Package Microsoft.AspNet.WebApi.WebHost для отсутствующей GlobalConfiguration ,
Мне нужен был Install-Package Microsoft.AspNet.WebApi.SelfHost, отсутствующий при использовании System.Web.Http;
источник
Вы можете проверить, что ваш проект
Microsoft.AspNet.WebApi.WebHost
установлен. Как выяснилось, в моем случаеMicrosoft.AspNet.WebApi.WebHost
был установлен другой проект, но не тот, который был нужен. В вашем packages.config проверьте, что такая строка есть:Если этого нет, значит, вы не
Microsoft.AspNet.WebApi.WebHost
установили свой проект. Вы можете установить с помощью диспетчера пакетов Nuget или через консоль диспетчера пакетов. Для установки из консоли диспетчера пакетов выполните следующую команду:источник
GlobalConfiguration.Configure API доступен в «Microsoft.AspNet.WebApi.WebHost» версия = «5.2.3»
а не в "Microsoft.AspNet.WebApi.WebHost" версия = "4.0.0"
источник
Если проблема не устраняется после удаления и установки Microsoft.AspNet.WebApi.WebHost, добавьте также следующие данные в web.config для работы globalconfiguration.
источник
«Install-Package Microsoft.AspNet.WebApi.Core» работал просто отлично.
источник
Моя проблема заключалась в том, что менеджер пакетов nuget не делал реального обновления, но файлы содержали ссылки на более старые версии, поэтому я сначала удалил все установленные пакеты, связанные с mvc (включая razor и web api), затем снова установил их и обновил версию бритва в views / web.config до версии 3.0.0.
источник
Ни одно из этих решений не помогло мне. У меня была путаница пакетов Nuget, которые не могли обновляться из-за циклических зависимостей друг от друга.
Мне бы пришлось исправить это по старинке. Я создал новый проект MVC апи / веб и вручную скопировать
System.Web.Http
иSystem.Web.Http.WebHost
из нового проекта в папки NuGet из exisitng раствора в. Оттуда я обновил ссылки, OMG, "просмотр" и исправил проблему.источник
это решило эту проблему, добавив пространство имен в файл Global.asax.cs.
используя System.Web.Http;
это решило проблему.
источник