Visual Studio Express 2012 app.config переназначение сборки

Я перенес проект из MVC 3 в MVC 4 некоторое время назад.

когда я создаю, я получаю сообщения

1>  No way to resolve conflict between "System.Web.Mvc, Version=3.0.0.0 ..." and , Version=2.0.0.0
1>  Consider app.config remapping of assembly "System.Web.WebPages ..." from Version "1.0.0.0" to Version "2.0.0.0"  to solve conflict and get rid of warning.
1>  Consider app.config remapping of assembly "System.Web.WebPages.Razorfrom Version "1.0.0.0" [c:\Program Files (x86)\Microsoft ASP.NET\ASP.NET Web Pages\v1.0\Assemblies\System.Web.WebPages.Razor.dll] to Version "2.0.0.0" [C:\Users\OEM\documents\visual studio 2012\Projects\DabTrial\packages\Microsoft.AspNet.WebPages.2.0.30506.0\lib\net40\System.Web.WebPages.Razor.dll] to solve conflict and get rid of warning.

и т.д.

Когда я смотрю на ссылки, это все более поздние версии, а web.config относится только к более поздним версиям. Когда я просматриваю весь каталог решений с помощью токена открытого ключа (в проводнике Windows), я не вижу файлов типа XML со ссылками на более ранние версии.

очевидно, что путь к файлам отличается, но я не могу найти, куда компилятор перенаправляется на путь для более раннего файла DLL.

Проект строит и работает нормально, но я предполагаю, что компилятор предлагает эти изменения по какой-то причине. Спасибо за любую помощь.

Ответ 1

Ваши зависимости в nuget, вероятно, ссылаются на версию MVC3. Вы можете попробовать добавить в свою веб-конфигурацию следующую строку:

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

Вы также можете попробовать запустить следующее в Консоль диспетчера пакетов

Update-Package -Reinstall

У вас должна быть хотя бы версия 2.1 для nuget для этой команды, но она обновит ваши пакеты и перенастроит их, если вы обновили .NET. Вы можете проверить это сообщение для получения дополнительной информации.

Решение перехвата с .Net 4.0 до 4.5 - как переназначить пакеты NuGet?

Ответ 2

У меня также были такие проблемы. Я сделал всего две вещи:

  • обновленный System.Web.Mvc и все зависимости к последней версии (5.2.3)
  • Восстановить все решения (я использовал "Решение → Чистое решение", затем "Решение → Сборка решения" )