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.