четверг, 6 ноября 2014 г.

Ошибка с System.Web.Mvc версия 4.0.0.1 (не компилируется проект)

Ситуация
Не компилируется ASP.NET MVC проект. Компилироваться перестал внезапно, без каких-то действий с моей стороны.

Изучение вопроса
Виновника проблемы нашел относительно быстро. Им оказался Microsoft, а точнее автоматический Windows Security update. Update.
Microsoft подменило версию библиотеки System.Web.Mvc с 4.0.0.0 на 4.0.0.1
(на самом деле точно такое-же произошло и с третьей версией 3.0.0.0 поменялось на 3.0.0.1 но у меня нет проектов на MVC 3, но решение, думаю будет аналогичным).

Ссылки по теме
Windows update caused MVC3 and MVC4 stop working
http://stackoverflow.com/questions/26393157/windows-update-caused-mvc3-and-mvc4-stop-working
System.Web.Mvc broken after security update
https://social.msdn.microsoft.com/Forums/vstudio/en-US/eba2bb36-762c-461b-8104-5ce45a3a3f67/systemwebmvc-broken-after-security-update?forum=netfxsetup


Не помогло
по ссылкам советовали автоматически установить нужную версию из nuget.
Но у меня этот способ не сработал - nuget выдавал ошибку.


Решение, которое помогло мне

1. Заменил ссылку на библиотеку:
во всех проектах удалил ссылку (reference) на старую библиотеку и добавил ссылку на System.Web.Mvc 4.0.0.1
(после этого проекты хотя бы стали компилироваться)

2. Поправил конфиг-файлы:
Тут правил основной web.config и web.config из папки Views
суть исправлений: делал поиск по строке System.Web.Mvc и менял 4.0.0.0 на 4.0.0.1.

После этого заработало локально

3. Сделал так чтобы библиотека копировалась в bin директорию проекта:
В свойствах (properties) добавленного файла (System.Web.Mvc) установил значение
Copy Local = true

после этих изменений и паблиша заработало на удаленном хостинге.

Вопросы/пожелания принимаются в комментариях

Комментариев нет:

Отправить комментарий