6

Когда я устанавливаю пакет NuGet для WebAPI, это дает мне версию 1.0.0.0 из System.Net.Http, но она ссылается на версии 2.Web Api: System.Net.Http версия 2.0.0.0 не найден

Кажется, я не могу найти версию 2 для меня. Когда я загружаю .net 4.5, я получаю System.Net.Http версии 4.0.315.x, но я не могу использовать это, потому что сборки Web Api относятся к версии 2.0.0.0.

Кто-нибудь знает, где я могу найти эту версию 2.0.0.0? Я пробовал менеджер пакетов NuGet, mvc4, .net 4.5, и ничего не дает мне версию 2.

Заранее спасибо.

+0

Когда я добавляю WebApi через NuGet, он добавляет 'Microsoft.Net.Http' v2.0.20505.0, который также включает' System.Net.Http' v2.0.0.0. Посмотрите папку lib в каталоге пакетов. – adrianbanks

+0

Когда я иду в эту папку и проверяю версию этой System.Net.Http.dll, это v1.0.0.0. Я просто удалил пакет и перезагрузил его, чтобы быть уверенным. – CDubbz31

+0

У меня есть ссылка на версию 2.0.0.0, проблема в том, что у меня нет сборки. Все мои сборки либо версии 1.0.0.0, либо 4.0.315.x. – CDubbz31

ответ

12

Добавьте ниже конфигурации в файле Web.config под <system.web> узла (предполагается, что приложение работает на .NET 4.5, targetFramework атрибут установлен 4.5):

<compilation targetFramework="4.5"> 
    <assemblies> 
    <add assembly="System.Net.Http, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
    </assemblies> 
</compilation> 

добавить также ниже одного в корне уровень под <configuration> узла:

<runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
    <dependentAssembly> 
     <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" /> 
     <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" /> 
    </dependentAssembly> 
    </assemblyBinding> 
</runtime> 

Это должно решить вашу проблему.

+0

работает как очарование! благодаря :) –

Смежные вопросы