1

Использование dotPeek для изучения ссылки на главной сборки веб-проекта, я вижу:поиск причиной множественных System.Web.Mvc ссылки

System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 
System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 

Ссылки проекта в Visual Studio показывает только версию 5.2.3.0 , Я также искал файлы .csproj для ссылочных проектов.

Управление пакетами NuGet показывает только версии v5.2.3 от Microsoft.AspNet.Mvc.

Поиск в папке packages находит только v5.2.30128.0 под Microsoft.AspNet.Mvc.5.2.3\lib\net45.

gacutil /l System.Web.Mvc показывает версии 3.0.0.0 и 4.0.0.0.

Я просмотрел другие ссылки с помощью Иерархии ссылок dotPeek, и я не нашел старую версию.

В ответ я проверил Web.config; это уже присутствует:

<dependentAssembly> 
    <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /> 
    <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" /> 
    </dependentAssembly> 

Я также проверил другие Web.configs конфликтующих версий.

Кроме того, я попробовал установить определенную версию в True в свойствах ссылки System.Web.Mvc. Это не имело никакого значения.

Ожидаются ли несколько версий? Если нет, как я могу найти и удалить исходный код старой версии?

+1

есть ли ссылка на него в вашем web.config в разделе привязки сборки? если нет, вы можете добавить это. Это более чем вероятно вторичная зависимость, которая тянет его. – kmacdonald

+0

Действительно ли это вызывает проблему? Если на него ссылается один из ваших других компонентов, вы можете попытаться обновить все остальные. Но если это не вызывает никаких ошибок, я бы просто проигнорировал его. –

+0

@Brian мы столкнулись с серьезными проблемами с задержкой под нагрузкой и вынуждены были обновить это обновление. Мы расследуем все возможные причины. – TrueWill

ответ

2

попробуйте добавить это к вашему web.config

<runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
      <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /> 
      <bindingRedirect oldVersion="1.0.0.0-5.2.3.0" newVersion="5.2.3.0" /> 
     </dependentAssembly> 
    </assemblyBinding> 
</runtime> 

В основном это тестирование приложения, что для любой версии (от 1-5.2.3) из System.Web.MVC, ссылка в приложении, чтобы использовать 5.2.3.0 вместо этого. более вероятно, у вас есть ссылка, которая все еще ищет конкретную версию 5.0. Это сжигает меня все время с JSON.net.

+0

+1 за хорошее предложение; Я проверил, и аналогичная перенаправка уже присутствовала (просто переход от версии 0). – TrueWill

+1

хм, и это интересно. Возможно, попробуйте установить флаг ссылки System.Web.MVC «Использовать конкретную версию» в true? Я чувствую твою боль от этого. – kmacdonald

+1

Еще одно место для проверки - это web.config в папке Views вашего проекта. – kmacdonald

0

Удалите несколько существующих dependency со ссылкой. После этого добавьте reference, который вы хотите сохранить в своем проекте.

И из окна свойств вы можете увидеть версию на текущий момент dependency. Проверьте эту версию и установите ее в файле web.config.

+0

-1. Как явственно заявил, ссылки на проект в Visual Studio показывают только версию 5.2.3.0. Я также заявил, что версия установлена ​​в Web.config. – TrueWill

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