Ничего из вышеперечисленного у меня тоже не помогло;
- DLL были настроены на Копирование локального
- Добавление пространств имен в оба файла web.configs ничего не дало
- Добавление ссылок на сборки в system.web \ compilation \ assemblies тоже не помогло (хотя я не удалял эти ссылки, так что может быть, они тоже нужны)
Но я наконец нашел то, что сработало для меня:
Это произошло потому, что мои выходные данные сборки были отправлены в bin \ Debug \ для конфигурации отладки и bin \ Release \ для конфигураций Release. Как только я изменил конфигурацию сборки на "bin \" для всех конфигураций (как показано на изображении ниже), все стало работать как надо !!!
Я понятия не имею, почему разделение ваших сборок по папкам Release и Debug должно приводить к нарушению синтаксиса Razor, но, похоже, это связано с тем, что что-то не может найти сборки. Для меня проекты, в которых были проблемы с синтаксисом бритвы, на самом деле являются моими проектами «библиотеки бритвы». Они заданы как проекты приложений, однако я использую их как библиотеки классов с RazorGenerator для компиляции своих представлений. Когда я действительно попытался запустить один из этих проектов напрямую, это вызвало следующую ошибку конфигурации:
Не удалось загрузить файл или сборку System.Web.Helpers, Version = 3.0.0.0, Culture = нейтральный, PublicKeyToken = 31bf3856ad364e35 или одну из ее зависимостей. Система не может найти указанный файл.
Это привело меня к попытке изменить вывод сборки, так как я заметил, что для всех веб-проектов вывод сборки всегда находится непосредственно в папке bin, в отличие от библиотеки классов по умолчанию, в которых есть как папки выпуска, так и папки отладки.