Visual Studio 2015 Broken Razor Intellisense


140

После установки и последующего ремонта моего экземпляра VS2015 я все еще не могу заставить intellisense (на стороне сервера) работать в моих представлениях MVC. Я получаю уведомление в виде приглашения, как только я открываю в первый раз в сеансе файл .cshtml и получаю адрес файла Activitylog. Сообщение об ошибке, полученное в ActivityLog.xml (короткая версия):

System.ArgumentException: элемент уже добавлен. Ключ в словаре: 'RazorSupportedRuntimeVersion'

Вот полная версия:

System.Reflection.TargetInvocationException: исключение было выброшено целью вызова. ---> System.ArgumentException: элемент уже добавлен. Ключ в словаре: 'RazorSupportedRuntimeVersion'Добавляемый ключ: 'RazorSupportedRuntimeVersion' в System.Collections.Hashtable.Insert (ключ объекта, объект nvalue, логическое добавление) в System.Collections.Hashtable.Add (ключ объекта, значение объекта) в System.Collections.Specialized.HybridDictionary.Add (Ключ объекта, значение объекта) в Microsoft.VisualStudio.Utilities.PropertyCollection.AddProperty (ключ объекта, свойство объекта) в Microsoft.VisualStudio.Html.Package.Razor.RazorVersionDetector.Microsoft.Html.Editor.ContainLanguage.RazorVersion.IRazorVersion. .GetVersion (ITextBuffer textBuffer) в Microsoft.Html.Editor.ContainLanguage.Razor.RazorUtility.TryGetRazorVersion (ITextBuffer textBuffer, Version & razorVersion) в Microsoft.Html.Editor.ContainLanguageRuffer.RazorBuffer (ITextBuffer). внутренней трассировки стека исключений --- в System.RuntimeMethodHandle.InvokeMethod (цель объекта, аргументы Object [], сигнатура сигнатуры, логический конструктор) в System.Reflection.RuntimeConstructorInfo.Invoke (BindingFlags invokeAttr, связыватель привязки, параметры Object [], привязка CultureInfo) в System.RuntimeInfoTypelags (язык и региональные параметры) в System.RuntimeInfoTypelags. , Binder binder, Object [] args, CultureInfo culture, Object [] activateAttributes, StackCrawlMark и stackMark) в System.Activator.CreateInstance (Type type, BindingFlags bindingAttr, Binder binder, Object [] args, CultureInfo culture, Object [] activateAttributes) в System.Activator.CreateInstance (Type type, Object [] args) в Microsoft.Html.Editor.ContainLanguage.Common.ConolatedCodeErrorTaggerProvider'1.CreateTagger [T] (ITextBuffer textBuffer) в Microsoft.VisualStudio.Textregator.Tagging.A1.GatherTaggers (ITextBuffer textBuffer)

Если это поможет, у меня есть несколько настроек раскраски шрифтов и установлены расширения Web Essentials, Bundler & Minifier и Web Compiler.

ОБНОВЛЕНИЕ : это происходит либо когда я открываю существующее веб-приложение, либо когда я создаю новое с нуля. Также на том же компьютере установлен и запущен экземпляр VS2013 .

Никакого intellisense

Как вы можете видеть на картинке выше, я не получаю никакого intellisense и никакой раскраски кода.

Есть какие-нибудь подсказки о том, как это исправить? Заранее спасибо.


1
Попробуйте запустить новый веб-проект, используя веб-шаблон по умолчанию. Если он работает, значит проблема связана с вашим проектом. По крайней мере, его легче сузить.
Rosdi Kasim

Извините, Росди, мне пришлось сообщить подробности. Я соответствующим образом обновил текст выше. Кстати, продолжая гуглить, я только что нашел открытый отзыв здесь connect.microsoft.com/VisualStudio/feedback/details/1579142/… который сообщает о моей точно такой же проблеме.
Cristian Merighi

Попробуйте это: stackoverflow.com/questions/17598359/… сработал для меня
Knerd

Привет, Кнерд, дело в том, что у меня вообще нет никакого интеллекта (см. Рис. Выше). Для меня это больше похоже на основную проблему визуальной студии, чем на неправильные настройки проекта (я получаю ту же проблему в представлениях шаблонов по умолчанию для нового проекта).
Cristian Merighi

Вот как я исправил очень похожую проблему в VS 2015 RTM: stackoverflow.com/a/32308899/1551276
Владимир Абашин

Ответы:


127

Я решил эту проблему сбросом пользовательских данных

devenv.exe /resetuserdata

и удалите папку ".vs" в моем проекте.


ВНИМАНИЕ: это сбросит все ваши пользовательские настройки. По сути, это похоже на восстановление заводских настроек по умолчанию. Вы потеряете все настраиваемые сочетания клавиш, установленные расширения и т. Д.


14
Мне не нужно было удалять папку .vs, чтобы исправить мою проблему. resetuserdata было достаточно
Фил

9
Просто убедитесь, что вы запускаете это из этой папки "C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \", особенно если на вашем компьютере установлено более одной VS.
Мигель

10
Для меня проблема devenv.exe /resetuserdata не устранена ! К вашему сведению: я не получаю никаких ошибок, но VS не рисует синтаксис для представлений Razor.
А-Шарабиани

7
Имейте в виду, что вы потеряете все свои настройки Visual Studio, такие как расширения и учетные данные (учетной записи, в которую вы вошли)! VS необходимо закрыть перед запуском devenv.exe /resetuserdata.
fabriciorissetto

9
Прежде чем использовать эту команду, узнайте, что она делает. Помимо незначительных неудобств, таких как выход из Visual Studio и сброс настроек окон, он также удалил несколько расширений и Resharper. Поиск правильных версий для переустановки занял больше времени, чем я ожидал.
Джейсон

162

Это повторялось и у меня, и, похоже, связано с обновлениями расширений, но я еще не смог винить что-то конкретное. Что мне удалось обнаружить, так это менее навязчивое решение.

В моем случае удаление содержимого этого каталога позволяет IDE восстановить:

%LocalAppData%\Microsoft\VisualStudio\14.0\ComponentModelCache

Изменить: я только что наткнулся на это, что тоже может быть удобно - Очистить кеш компонентов MEF (открытая галерея VSIX)


6
ResetUserData сработал для меня, но проблема вернулась. Это работает и намного менее навязчиво (нет необходимости восстанавливать все ваши расширения).
ChadT

13
У меня это сработало без запуска devenv.exe / resetuserdata
Jaecen

4
Это сработало и для меня. Сначала я попробовал команду resetuserdata, но она, похоже, ничего не дала. Это сработало сразу!
yesman

4
У меня это сработало, это случалось несколько раз, и я всегда сбрасывал пользовательские данные, и это ужасно, я использую Roaming Extension Manager, чтобы упростить переустановку расширений
ivi.hamiti

2
Не удалось устранить проблему в VS2015 Professional. Подсветка синтаксиса Razor и intellisense по-прежнему не работают. Ошибок не отображается.
Джастин Скилс

11

FWIW, у меня была эта проблема с VS 2015 Enterprise на двух разных машинах. На одной машине сброс пользовательских данных решил проблему (на время). На другом компьютере мне пришлось полностью удалить и переустановить VS, и проблема на время исчезла. На обеих машинах проблема вернулась после того, как я установил расширение (один раз при установке Web Essentials, один раз при установке Git Diff Margin).

Я сжег обращение в службу технической поддержки MSDN, и ответ был ... Да, это ошибка, MS знает об этом, и они работают над этим.

Не особо действенный ответ, но, тем не менее, ответ ...

РЕДАКТИРОВАТЬ: И что касается решения проблемы, я столкнулся с проблемой еще несколько раз с тех пор, как опубликовал этот «ответ». Совсем недавно я установил обновление для диспетчера пакетов NuGet, и при перезапуске VS возникла эта проблема. Я сбежал devenv.exe /resetuserdata, но это не помогло; он все еще был сломан. Итак, я попробовал еще раз (побежал devenv.exe /resetuserdata) и, bada bing bada boom, проблема исчезла (пока). Мораль кажется чем-то вроде «если сначала у вас не получится ...»


Некоторое предупреждение о том, что это стирает абсолютно все, было бы полезно. Моя конфигурация панели пропала, подсветка синтаксиса исчезла, и проблема все еще не устранена. :( Как мне вернуть свои данные?
Генри Инг-Симмонс,

8

Возможно, это произошло из-за наличия ReSharper.

Это будет исправлено в будущих версиях, но на данный момент (версия 10.0.2) не работает. ReSharper переопределяет IntelliSense из Visual Studio, поэтому он не будет работать, что также объясняет, почему запуск devenv.exe /ResetUserDataисправляет его, поскольку он удаляет ReSharper.

Вручную верните мощность IntelliSense в VS через меню:
ReSharper>> Enviroment>> IntelliSense>> Заполните следующее:
введите описание изображения здесь

А вот так должен выглядеть IntelliSense от VS:
введите описание изображения здесь


6

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

Обновление Visual Studio (я подозреваю, что обновление TypeScript произошло в сентябре 2015 года) удалило компонент инструментов веб-разработчика Visual Studio 2015. Это приводит к тому, что IntelliSense не работает.

Я снова установил Инструменты веб-разработчика в параметрах установщика И удалил ComponentModelCache после установки. Это сработало для меня.


Это тоже решило проблему для меня. При ремонте VS2015 с помощью программ добавления / удаления я мог видеть, что Инструменты веб-разработчика даже не установлены. Установка флажка и комплектация сработали.
Андерс Якобсен

4

Это сразу исправило это для меня.

В Visual Studio:

Нажмите Инструменты-> Параметры-> Текстовый редактор-> Все языки-> Общие. Снимите флажок «Автоматические элементы списка» Снимите флажок «Информация о параметрах» Установите флажок «Автоматические элементы списка» (да, тот, который вы только что сняли). Установите флажок «Информация о параметрах» тот, который вы только что сняли) Нажмите ОК


Пробовал resetuserdata, удалять vssc, очищать кеш компонентов и не работал. После того, как я попробовал это, и это сработало! Спасибо
c0demaster 05

4

Чтобы добавить свои 2 цента. Ни одно из предыдущих решений у меня не помогло, потом я нашел эту ссылку:

http://www.c-sharpcorner.com/blogs/how-to-resolve-intellisense-issue-in-visual-studio1

В частности этот

Решение 4:

Затем сбросьте настройки из следующего места.

Инструменты-> Настройки импорта и экспорта-> Сбросить все настройки.

Оттуда я выбираю Visual C #


1

В /ResetUserDataРешение является лучшим выбором, но я также думаю , что я обнаружил возможную причину этого ...

В настоящее время я использую Umbraco для создания макросов в BackOffice. Когда эти файлы создаются, я нажимаю кнопку «Скрыть / Показать все файлы», чтобы показать частичный макрос в моем решении, и подсветка синтаксиса Razor, похоже, перестает работать, поэтому я предполагаю, что в ваше решение добавлены новые файлы, которые не создаются непосредственно через VS вызвать эту проблему.

Даже при добавлении файлов в решение подсветка синтаксиса не работает.


Интересно, так как я тоже испытываю это с Umbraco .. Umbraco 7.4.3 и VS 2015, в частности ..
Брайан Лейси

1

Есть другое решение, без сброса всех пользовательских данных

(но только макеты окон / панели инструментов):

закройте все экземпляры VS2015, [в конечном итоге сделайте резервную копию и] удалите папку:

"[User Directory]\AppData\Roaming\Microsoft\Visual Studio\14.0"

Теперь снова откройте VS2015: макет был сброшен до заводских настроек, но синтаксис Razor будет работать


1

К вашему сведению: Моя установка VS 2015 PRO имеет полную установку со всеми третьими сторонами.

Я перепробовал все возможные решения, которые здесь, в статье, мне не помогли. То, что написал Крейг Голденсоф, частично помогло мне найти решение.

Итак, сначала я сделал: снимите все флажки для текстового редактора-> Все языки-> Завершение общего утверждения: введите описание изображения здесь

После нажатия OK - снова откройте диалоговое окно параметров: и проверьте все на тот же раздел: введите описание изображения здесь

и снова примените настройки. Вам необходимо перезапустить Visual Studio. После перезапуска потребуется время для загрузки, но после этого у меня все заработало.


Общая проблема. То, что я читал, у всех были похожие проблемы, и они всегда исправлялись по-разному. Я просто поделился тем, что мне помогло. Извините, не может быть решением для всех.
Евгений Босиков 07

1

Иногда VS IDE вообще не отображает IntelliSense.

Я просто закрываю решение, закрываю VS, затем снова открываю, и проблема решена.


1

Если ни один из других вариантов не работает, есть обходной путь. После ввода "." оператора, нажмите клавиши «Ctrl + Пробел», которые должны вызвать диалоговое окно IntelliSense.

У меня возникла эта проблема при работе с файлами бритвы .cshtml MVC.


0

Это может показаться смешным, но просто для одного ...

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

У меня есть VS 2015 Community edition. Раньше был VS 2015 Enterprise, и это случилось, но после получения сообщества я обнаружил, что то же самое происходит и одно и то же решение работает для обоих.

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


0

Вам не нужно все сбрасывать, просто удалите все файлы %LocalAppData%\Microsoft\VisualStudio\14.0\ComponentModelCacheи перезапустите VS, все будет хорошо.


0

Я отправил этот ответ на другой вопрос SO, просто потому, что хочу, чтобы люди не тратили зря время, которое я только что потратил. Моя проблема заключалась в том, что я добавил файлы в проект, но не включил их. Поэтому я решил показать все файлы:

введите описание изображения здесь

затем решил включить папки:

введите описание изображения здесь

Проблема проявляется только тогда, когда вы открываете веб-сайт MVC как проект, а не когда вы открываете его напрямую как веб-сайт.



0

Моя была небольшая боль в кестере, но, похоже, работала. В моем случае это был файл .aspx, который больше не работал с intellisense (после того, как я тупо изменил имя файла .aspx ... урок усвоен!)

  1. Я скопировал весь свой код из файлов (.aspx и .cs), например, в блокнот.
  2. Удалил файл .aspx (который, в свою очередь, удалил все дочерние файлы).
  3. Сохранил свой проект. Создал новый файл .aspx с тем же именем.
  4. Скопируйте / вставьте мой код из блокнота.
  5. Сохранил.
  6. Снова попробовал intellisense. Это сработало!

Круглый путь, но не так плохо, как удаление / переустановка, что ПОЛНОСТЬЮ излишне. Удачи всем! Надеюсь, MS исправит это в один из этих лет!

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.