2015-11-25 2 views
0

я получаю следующее сообщение об ошибке при попытке запуска моего приложения ASP.NET:разница между используемой сборки и сборки ссылочного

Error 1 MyProject Ассамблеи», Version = 1.0.0.0, Culture = нейтрален, PublicKeyToken = null 'использует' System.Web.Http, Version = 5.2.3.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35 ' , который имеет более высокую версию, чем ссылочная сборка' System.Web.Http, Версия = 4.0.0.0, Культура = нейтральный, PublicKeyToken = 31bf3856ad364e35 '

Что означает это сообщение? В чем разница между используемой сборкой и ссылкой?

При взгляде на свойства сборки System.Web.Http (через Solution Explorer -> My Project -> Ссылки -> System.Web.Http) Я могу видеть 5.2.3.0.

Есть много вопросов/ответов на SO, связанных с такой ошибкой, но я не могу найти, чтобы кто-то действительно объяснял, что происходит.

ответ

0

Фокус в том, что System.Web.Http загружается как часть инициализации веб-приложения задолго до того, как вы начнете воспроизводить ссылки на проект. Поэтому к моменту загрузки вашего проекта он пытается загрузить более новую версию той же сборки в один и тот же домен приложения, вызывая ошибку.

Вы можете использовать сборку связывания перенаправлять в вашем web.config:

<configuration> 
    <runtime> 
    <assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" 
     culture="neutral" /> 
    <bindingRedirect oldVersion="0.0.0.0-5.2.2.0" newVersion="5.2.2.0" /> 
    </runtime> 
</configuration. 
Смежные вопросы