Выделение синтаксиса Razor не работает в VS 2012 с MVC 5
Я играю с MVC 5 RC 1 в Visual Studio 2013 RC. Очень хорошо работает.
Теперь я обновил существующий проект MVC 4 в VS 2012 до MVC 5 так же, как описано здесь
Я также изменил web.config(s) - см. "обновление с MVC4 до MVC5"
Все (создание, запуск веб-приложения, даже intellisense) отлично работает, за исключением выделения синтаксиса кода Razor/С# в представлениях.
Я также пробовал его с проектом MVC 5, созданным в VS 2013. Тот же результат. Поэтому я предполагаю, что VS 2012 не "понимает" новые сборки?!
Любое известное обходное решение или идеи, чтобы получить подсветку?
Ответы
Ответ 1
Microsoft выпустила новую версию веб-инструментов ASP.NET для VS 2012.
После установки подсветки синтаксиса снова вернется.
http://blogs.msdn.com/b/webdev/archive/2013/11/18/announcing-release-of-asp-net-and-web-tools-2013-1-for-visual-studio-2012.aspx
Установка обновления VS 2012 4 была недостаточной.
Доступен набор автономных установщиков. Нетрадиционные установщики проще в использовании, чем Invoke Web Platform Tools (WebNode11Pack.exe @~ 114KB):
Если вы хотите использовать автономный установщик, перейдите http://www.microsoft.com/en-us/download/details.aspx?id=41532
- AspNetWebTools2013_1Setup.exe @~ 39MB
- WebToolsExtensionsVS.msi(для Visual Studio 2012 стандартная версия [s]) @~ 21MB
- WebToolsExtensionsVWD.msi(для Visual Studio 2012 бесплатное издание "Web" [s]) @~ 21MB
Ответ 2
Теперь ASP.NET и Web Tools 2013.1 для Visual Studio 2012 были выпущены и должны разрешить проблему Intellisense MVC5 с VS 2012.
Этот выпуск приносит массу больших улучшений и включает некоторые фантастические усовершенствования ASP.NET MVC 5, веб-API 2, строительные леса и Entity Framework для пользователей Visual Studio 2012 и Visual Studio 2012 Экспресс для Интернета.
Вы можете загрузить обновление: http://blogs.msdn.com/b/webdev/archive/2013/11/18/announcing-release-of-asp-net-and-web-tools-2013-1-for-visual-studio-2012.aspx
Модератор: это может быть просто ссылка для загрузки, но это решает проблему, она работает для меня, и она работает для пользователей, которые проголосовали за это как ответ. Если вы собираетесь удалить его, пожалуйста, укажите причину, спасибо!
Ответ 3
Этот ответ утверждает, что VS2012 не может понять Razor 3, поэтому вам (и мне) придется перейти на VS2013
Ответ 4
В настоящее время я использую обходной путь, чтобы заставить IntelliSense работать в VS2012 (я предполагаю, что это не сработает правильно), если я использовал VS2013 для того же проекта; б) если я попытался использовать функции Razor 3):
Измените файл web.config на использование старой версии webpages
:
<add key="webpages:Version" value="2.0.0.0" />
Чтобы убедиться, что это никак не влияет на производительность, я добавил преобразование web.config:
<add key="webpages:Version" value="3.0.0.0" xdt:Transform="SetAttributes" xdt:Locator="Match(key)" />
К сожалению, это обходное решение имеет проблемы (которые я заметил до сих пор):
- Методы расширения (например,
Html.RenderPartial()
не распознаются и отображаются как ошибка в конструкторе).
Ответ 5
Я получил ответ от разработчика Microsoft:
Поддержка MVC 5/Razor 3 для VS 2012 еще не отправлена. Мы надеемся передать эту поддержку в середине ноября.
Итак, принятый ответ верен, но мы можем планировать вскоре эту поддержку и в VS2012.
Ответ 6
установите "ASP.NET и WebTools 2013.1 для Visual Studio 2012" в Microsoft Platform Installer
Ответ 7
Для меня проблема заключалась в том, что мои файлы сборки были выведены в каталог, отличный от bin
. После того, как мои файлы выведены на bin
, моя подсветка синтаксиса вернулась.
Один из способов исправить это - создать действие после сборки, которое копирует файлы в папке с корнем проекта (в отличие от фильтра вне проекта) в целевой каталог.
В следующей статье объясняется:
http://www.dennisonpro.info/managing-intellisense-in-razor-views-with-mvc-5-using-custom-builds-in-visual-studio-2013/