46

Я играю с MVC 5 RC 1 в Visual Studio 2013 RC. Работает очень хорошо.Выделение синтаксиса Razor не работает в VS 2012 с MVC 5

Теперь я модернизировал существующий проект MVC 4 в VS 2012 для MVC 5 таким же образом, как описано here

Я также изменил web.config (ы) - см "upgrading from MVC4 to MVC5"

Everything (сборка , запустить веб-приложение, даже intellisense) отлично работает, за исключением выделения синтаксиса кода Razor/C# в представлениях.

Я также пробовал его с проектом MVC 5, созданным в VS 2013 году. Тот же результат. Поэтому я предполагаю, что VS 2012 не «понимает» новые сборки ?!

Любое известное обходное решение или идеи для подсветки назад?

ответ

74

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 Update 4 не было достаточно.

Доступен набор автономных установщиков. Нетрадиционные установщики проще в использовании, чем вкладчик Web Platform Tools (WebNode11Pack.ехе @ ~ 114Кб):

Если вы хотите автономный инсталлятор то пожалуйста Гото 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
+1

Это не исправление для меня. Я установил новую версию Web Tools, но синтаксис Razor все еще не работает. Есть идеи? –

+1

То же, что и Симон Хартчер. Я установил все инструменты и проверил файлы web.config, но все равно не повезло. –

+0

Можете ли вы предоставить более подробную информацию о своей настройке? – Andreas

9

This answer утверждает, что VS2012 не могут понять Razor 3, так что вы (и я) должны перейти на VS2013

+0

Downvoters, пожалуйста, добавить комментарий. Мой ответ был действительным, когда он был поставлен, но с тех пор MS добавила поддержку VS 2012, так что теперь она немного устарела. Тем не менее, я не вижу необходимости обновлять его, чтобы эффективно использовать тот же текст, что и C Style – flipchart

6

настоящее время я использую обходной путь, чтобы получить IntelliSense работает в VS2012 (я предполагаю, что это будет не работает должным образом a) если я использовал VS2013 для того же проекта; б) если я попытался с помощью функции Бритва 3):

Измените web.config использовать старую версию webpages:

<add key="webpages:Version" value="2.0.0.0" /> 

Чтобы убедиться, что это не влияет на производство в любом случае я добавил веб .config трансформация:

<add key="webpages:Version" value="3.0.0.0" xdt:Transform="SetAttributes" xdt:Locator="Match(key)" /> 

К сожалению, это временное решение имеет проблемы (что я заметил до сих пор):

  • Методы расширения (например, Html.RenderPartial() не распознаются и отображаются как ошибка в дизайнере).
+0

, который является опрятным обходным решением - вы уже сталкивались с какими-либо побочными эффектами? – Andreas

+0

@ Andreas - ничего до сих пор, но он еще не развернулся для других разработчиков, поэтому, если я поймаю что-нибудь, я обязательно добавлю их к этому ответу. –

+0

Первый недостаток, который я заметил (не знаю, как он пропустил мимо меня в первый раз) добавлен в ответ ... делает обходное решение довольно бесполезным, но поскольку я придерживаюсь MVC5, это все равно лучше, чем ничего. –

6

Я получил этот ответ от разработчика Microsoft:

MVC 5/Бритва 3 инструментальную поддержку для VS 2012 еще не отправлен. Мы надеемся передать эту поддержку в середине ноября.

Итак, принятый ответ верен, но мы можем планировать вскоре эту поддержку и в VS2012.

+10

Сегодня я установил VS2012 Update 4 и не исправил его. – cirrus

+0

Я отправил электронное письмо в Microsoft, они сказали, что поддержка по-прежнему работает и не была отправлена. К сожалению, они не сказали ничего более конкретного :( –

+0

Вместо этого теперь я использую VS2013. Кажется, что на этот раз мы работали с VS2012 и VS2013, и все мои добавления работают нормально или лучше. VS2013 vs VS2012 обнаружен, но я остаюсь. Нет причин использовать VS2012. – cirrus

16

ASP.NET и Web Tools 2013,1 для Visual Studio 2012 теперь выпущен и должен решить проблему MVC5 INTELLISENSE с VS 2012.

Этот релиз приносит тонну больших улучшений и включают в себя некоторые фантастические усовершенствования ASP.NET MVC 5, веб-API 2, строительные леса и Entity Framework для пользователей Visual Studio 2012 и Visual Studio 2012 Express for Web.

Вы можете скачать обновление: 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

модератору: Это может быть просто ссылка на файл, но решить эту проблему, он работал на меня, и она работала для пользователей, проголосовавших это как ответ. Если вы собираетесь удалить его, пожалуйста, укажите причину, спасибо!

+1

Ты абсолютно прав. Я тоже немного смутился, почему ваш ответ внезапно исчез. Именно по этой причине я дал ссылку как ответ сам. Но кредиты твои! – Andreas

+0

Спасибо @Andreas позволяет надеяться, что он не будет удален снова :) –

3

установить «ASP.NET и WebTools 2013.1 для Visual Studio 2012» в Microsoft Platform Installer

1

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

Один из способов исправить это - создать действие после сборки, которое копирует файлы в папке с корнем проекта (в отличие от фильтра вне проекта) в целевой каталог.

Следующая статья объясняет: http://www.dennisonpro.info/managing-intellisense-in-razor-views-with-mvc-5-using-custom-builds-in-visual-studio-2013/

+0

переименование с 'Bin' на 'bin' помогает мне –

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