Visual Studio 2013 IntelliSense перестает работать для контроллеров ASP.NET MVC5


132

Я столкнулся со странной проблемой в моем проекте Visual Studio 2013 ASP.NET MVC 5. Внезапно IntelliSense в классах Controller проекта MVC 5 вообще не работает.

В моем решении есть другие проекты библиотек классов, и IntelliSense работает с этими файлами проекта библиотеки классов, но проблема только в проекте MVC. Обычно проблемы такого рода решаются путем перезапуска Visual Studio: я не только перезапустил Visual Studio, но и перезапустил свой компьютер, и проблема IntelliSense вообще не решается.

Есть ли другие шаги, которые помогут мне вернуть IntelliSense?

Ответы:


209

Закройте Visual Studio. Удалите файл <ProjectName> .v12.suo. Откройте решение.


Спасибо за информацию. Я попробую этот трюк в следующий раз, если мой Visual Studio intellisense снова перестанет работать.
Эмран Хуссейн

15
Я обнаружил, что удаление файла suo решает множество проблем. Это как Visual Studio эквивалент перезагрузки. Спасибо за напоминание.
grahamesd

1
Да ... исправил проблему для меня прямо сейчас. Мой ProjectName.v12.suoбыл размером 982 КБ. Удалил. Закрыл решение. Повторно открыл решение, и было создано новое ProjectName.v12.suo. Intellisense снова вернулся, но .suoтеперь этот новый файл имеет размер всего 500 КБ. Очень интересно. Может быть, Microsoft должна исправить это плохое поведение? Каким-то образом это заставляет VS терять Intellisense, и работать без него действительно сложно. :)
Лениэль Маккаферри

3
Не работал для меня. Что сработало для меня, так это сброс моих настроек.
DougCouto

Это устраняет проблему IntelliSense, но при этом теряются все точки останова, закладки и т. Д. Одновременно.
Андреас

68

Сброс моих настроек или ввозом ранее экспортировали, рабочие параметры, и перезапустить Visual Studio работало: Tools > Import and Export Settings... > Reset all settings.

РЕДАКТИРОВАТЬ: Это продолжает происходить со мной, на удивление часто в VS Express и иногда в VS Professional. Одна вещь, которую я заметил в Pro, - это то, что это произошло после неожиданного выключения (когда ИТ-служба вынуждена перезагружаться ночью). Таким образом, это может быть связано с неправильным закрытием Visual Studio. Описанная выше техника срабатывала каждый раз.


1
Спасибо, сегодня у меня снова возникла проблема с Intellisense, и ваше решение решило проблему.
Эмран Хуссейн

1
Спасибо, это сработало и для меня. Если вы читаете до конца, попробуйте это, прежде чем удалить все свои расширения.
Просто еще один Стив

: D Я сначала удалил все свои расширения. В любом случае, это сработало!
Луис Лавьери

это также устранило мою проблему
contractorwolf

Это был лучший вариант. Превосходно.
Нельсон Миранда

35

Инструменты> Параметры> Текстовый редактор> C #> Общие

Убедитесь, что установлен флажок "Автоперечисление".


Это сработало для меня. Удаление файла .suo уже работало во многих случаях, но на этот раз не помогло.
Крейг

Это сработало для меня. Visual Studio 2013. ИТ переключили нас на новый домен и потеряли все настройки VS.
boilers222

27

Я нашел способ решить проблему. То есть 1. -> Удалите проект ASP.NET MVC из решения, 2. -> Затем добавьте проект MVC обратно в решение.

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

РЕДАКТИРОВАТЬ:

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


1
Занимаюсь этим месяц, и это сводит меня с ума. Удаление и чтение из решения (хотя и боль) тоже помогли мне. Спасибо!
NorthFork 03

6
В моем случае это было расширение Xamarin, но я не хочу говорить плохо о Xamarin, потому что их поддержка клиентов супер превосходна. Как только я сообщил о проблеме, они быстро предоставили мне исправленную версию. Более того, в самой последней версии расширения Xamarin, похоже, больше нет этой проблемы. Я хочу сказать, что конкретная версия любого расширения может вызвать такую ​​проблему, нам может потребоваться удалить расширения по одному, чтобы выяснить, что является причиной проблемы. Например, будущая версия современного хорошего расширения тоже может вызвать такую ​​проблему. В этом случае нам нужно быть осторожными.
Эмран Хуссейн

2
Выгрузка проекта и его перезагрузка тоже сработали, спасибо!
Роб

1
В моем случае это было расширение Xamarin. Удалил его, и проблема исчезла. Это тоже была последняя версия!
Гай Лоу

1
У меня была такая же проблема с расширением Xamarin, но по какой-то причине только с одним конкретным проектом. Это была пробная версия с истекшим сроком действия, поэтому я просто удалил ее и вернул подсветку синтаксиса.
GnomeCubed

8

Вы можете выгрузить проект и перезагрузить проект MVC из решения

  1. Щелкните правой кнопкой мыши проект MVC в проводнике решений -> «Выгрузить проект».
  2. Щелкните правой кнопкой мыши проект MVC в проводнике решений -> «Перезагрузить проект».

После этого Intellesense доработал быстро.


Именно то, что я написал в 10 апреля, приятно! stackoverflow.com/a/29556005/1879699
Андреас

6
  • Сервис -> Параметры
  • Текстовый редактор -> C # -> Intellisense
  • Убедитесь, что установлен флажок «Показать список завершения после ввода символа»

Завершение кода Intellisense VS2013


1
Это сработало для меня. Я не уверен, что при установке они были отключены по умолчанию, но для меня не были отмечены следующие параметры, и это была новая установка. "Список участников авто" "Информация о параметрах". Я не получал intellisense на параметры метода либо. Единственный плагин, который у меня есть, это GhostDoc
gcoleman0828

@ gcoleman0828 Спасибо! Это был правильный ответ для меня с VS2013.
Род Хартцелл

5

Я не уверен, почему это происходит, но когда это происходит со мной, я могу восстановить Intellisense, просто перезапустив Visual Studio.

Вы правы, это действительно раздражает.


4

Иногда может помочь СБРОС настроек VS:

ИНСТРУМЕНТЫ-> Мастер импорта и экспорта настроек-> Сбросить все настройки-> Флажок «Нет, просто сбросить настройки, перезаписать мои текущие настройки» -> Далее> Далее> Далее

Я перепутал их с RESHARPER, и это помогло.


2
ну, это было так для меня, извините. Я перепутал их с настройками RESHARPER.
д.попов

2
Upvoted. Решарпер в прошлом разрушал мои настройки.
Зак

Это приемлемо только для тех, кто ничего не настраивал.
t3chb0t

3

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


1
Это самый простой способ. TY
Цезарь

1

Я обнаружил, что если сборка не удалась, Intellisense, кажется, сломался. После исправления ошибок сборки и перестройки проекта Intellisense будет работать после перезагрузки конкретного файла Razor.


1

В моем случае перезагрузка не сработала.

Итак, я сделал следующие странные шаги:

  1. Закрыл решение
  2. Открыл другое решение
  3. Проверено, что intellisense работал в этом другом решении.
  4. Закрыл другое решение
  5. Наконец, вновь открылось первое решение.

И intellisense снова заработал.


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

1

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

Кроме того, вы можете попробовать принудительно сбросить

Ctrl + K, Ctrl + I показывает быструю информацию Ctrl + Shift + Space показывает вам информацию о параметрах


1

Я пробовал много вещей, которые не работали. В конце я вырезал код в буфер обмена, заново создал контроллер и вставил код. Проблема решена!


1

У меня такая же проблема с Intellisense в текстовом редакторе.

Я просто closeфайл example.cs, который не предоставляет Intellisense, и повторно открываю этот класс без перезапуска, Visual Studioон работает для меня.

Примечание: у меня нет такой же проблемы со всеми файлами .CS в обозревателе решений.


1

Я использую VS 2013, и у меня была такая же проблема. Мое решение было обновить VS до последней версии. В моем случае Обновление 4. Простая ссылка в проекте должна совпадать со сборкой в ​​GAC на компьютере (ОС). Intellisense исходит из VS, а не из проекта.

Надеюсь, это кому-нибудь пригодится.


1

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

Параметры -> Помощник разработчика -> Intellisense -> Стандартная Visual Studio Intellisense

У меня ушло 5 часов, чтобы это найти :(

НТН.


1
Tools->Options->Text Editor->C# (or All Languages)->General

установите флажок для enable Auto List Membersи Parameter Informationна правой боковой панели.

Если он не выбран, выберите его.



0

Я получаю одно и то же каждый раз, когда работаю с одним конкретным проектом MVC5. Перезапустить VS2013 не получается. Удаление файлов suo не работает. Сбросить все настройки инструментов не получается. Единственное, что когда-либо работает, - это удаление проекта из решения и его повторное добавление. Видеть, как я должен делать это каждый день, действительно очень раздражает. Особенно, когда у меня настроен повторный запуск последних открытых файлов, мне нужно отследить те, над которыми я работал, и открыть их заново, а не автоматически появляться.


0

Я использую VS 2013 с MVC 5. Для меня решение было добавить следующее в Web.config:

<compilation debug="true" targetFramework="4.5.1">
  <assemblies>
    <add assembly="System.Web.Helpers, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Web.Optimization, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Web.WebPages, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  </assemblies>
</compilation>

0

Решение Rushonerok мне отлично подходит.
Для тех, кто не знает: <ProjectName> .v12.suo - это скрытый файл в корневой папке проекта. Вы должны установить «Показать скрытые файлы» в вашем файловом браузере, чтобы увидеть его.


0

Пока что некоторые из этих решений у меня не работают.

У меня есть следующее обходное решение

Просто объявите тип, который вы хотите использовать явно в новой переменной, и используйте его вместо Model.

@model MyModel
MyModel mymodel = Model;

@mymodel.MyIntelisenseIsWorkingAgain

0

Чтобы решить эту проблему, я закрыл Visual Studio Express 2013 и снова открыл решение, но дважды щелкнул его .slnфайл прямо из файловой системы. Открытие его с начальной страницы привело к нарушению интеллекта моих контроллеров.



0

Иногда вы закрываете его по ошибке. Попробуйте ctrl+spaceдля Windows или cmd+spaceMac, чтобы включить его.


0

Я знаю, что немного опоздал, но добавление этого в свой App.configфайл помогло!

<system.web>
    <compilation>
        <assemblies>
            <add assembly="System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        </assemblies>
    </compilation>
</system.web>
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.