Visual Studio 2012 - Intellisense czasami znika / jest uszkodzony

133

Moi koledzy i ja używamy VS2012 od kilku tygodni. Czasami po kilku godzinach pracy inteligencja jest zepsuta. Po zamknięciu wszystkich otwartych kart działa ponownie.

Czy jest więcej osób mających ten sam problem? To nie może być problem z rozszerzeniem, ponieważ mam ten sam problem w domu. Może istnieje obejście tego problemu?

KroaX
źródło
2
Czy używanie Ctrl+ Spacedziała po pojawieniu się tego problemu?
SajjadHashmi
7
Żadne Ctrl + Spacja nie ma żadnego efektu
KroaX
2
Mając ten sam problem
msbg
2
Program Visual Studio używa niezależnych implementacji technologii IntelliSense dla każdego z obsługiwanych języków, więc odpowiedź będzie prawdopodobnie zależeć od używanego języka. Ponadto kilka rozszerzeń programu Visual Studio zmienia, rozszerza, a nawet całkowicie zastępuje funkcje IntelliSense dla co najmniej jednego języka, co może zmienić podaną tutaj odpowiedź.
Sam Harwell
Zagłosuj w tym głosowaniu użytkownika, aby poprosić o akord z miękkim resetem, który przynajmniej złagodzi ten problem
mattmanser

Odpowiedzi:

184

Oto kilka najlepszych rozwiązań umożliwiających przywrócenie programu Visual Studio 2012 Intellisense na właściwe tory. Wypróbuj je jeden po drugim, mając nadzieję, że jedno z nich rozwiąże problem:

When the problem occurs next time follow these: zacznij od punktu 1 i przejdź do następnego, gdy wcześniejszy nie działa

1: Close all the tabsi ponownie otwórz plik. (Dzięki Russds)

2: Clean the Build> Close the Solution> Restart Visual Studio> Open the Solutionponownie

3: Akcja: Edit> IntelliSense>Refresh Local Cache

4: Zamknij program Visual Studio 2012 i usuń ten folder: %AppData%\Microsoft\VisualStudio\11.0\ReflectedSchemas

5: Goto: TOOLS> Import and Export Settings>Reset all settings

6: Usuń .suoplik w folderze projektu. (Dzięki Jason Steele)

Mam nadzieję, że Twój problem zostanie rozwiązany w którymkolwiek z sześciu powyższych kroków. Ale jeśli po tym wszystkim nie, to myślę, że powinieneś rozważyć ponowną instalację VS2012.

SajjadHashmi
źródło
6
Nie można było # 1, ponieważ ten element menu nie istnieje w moim VS2012 (?). Nie można wykonać # 2, ponieważ ten folder nie istnieje. Ale po ponownym uruchomieniu VS2012 problem zniknął.
Lasse Skindstad Ebert
20
nie mogę znaleźć nigdzie tam odświeżenia lokalnej pamięci podręcznej?
MonsterMMORPG
6
To samo mi się przydarzyło, żadne z powyższych nie działało, ale zamknięcie wszystkich zakładek nie działało. To powinna być opcja pierwsza w tym rozwiązaniu.
russds
1
4 działał dla projektu w VS 2012, ale folderu nie ma w VS 2013 i nadal mam tam problem. Zamiast tego próbowałem usunąć podobnie wyglądające GeneratedSchemas, ale to też nie zadziałało.
Jason Steele
1
@SajjadHashmi, co myślisz o edycji swojej odpowiedzi, aby zawierała krok do usunięcia pliku .suo? W tym wątku znajduje się kilka komentarzy i odpowiedzi, które sugerują, więc wydaje się, że innym pomogłoby umieszczenie ich na tej głównej liście. Zaproponowałem dzisiaj zmianę tego pytania, aby to uwzględnić, ale moja zmiana została odrzucona (z powodów, które wprawiają mnie w zakłopotanie i trochę zniechęcenie). W każdym razie, proszę, rozważ ten niewielki dodatek do swojej odpowiedzi.
pettys
19

Używam Visual Studio 2012 i mam ten sam problem. Napraw to (gdy Intellisense już nie działa), po prostu muszę zamknąć bieżącą kartę (w której Intellisense nie działa) i ponownie ją otworzyć ... i wszystko jest w porządku ... nie ma potrzeby zamykania Visual Studio ani zamykania wszystkiego Tabs.

H_He
źródło
2
To faktycznie zadziałało dla mnie. Beats przeładowuje całe rozwiązanie lub restartuje Visual Studio.
Howard Renollet
Dzięki! To też moja sprawa.
Hong,
13

Próbowałem wszystkiego. Rzecz, która OBROBIONE jest usunięcie pliku suo. Jest to ukryty plik o nazwie SolutionName.v11.suo w katalogu rozwiązania:

  1. Zamknij rozwiązanie
  2. Upewnij się, że widzisz ukryte pliki.
  3. Usuń plik suo.
  4. Otwórz ponownie rozwiązanie.

Stracisz pulpit rozwiązania (żadne pliki nie zostaną automatycznie otwarte w edytorze), ale to niewielka cena, jaką trzeba zapłacić, aby odzyskać inteligencję :)

Alon Gingold
źródło
Jakieś pomysły, dlaczego tak się dzieje? Usuwam teraz moje pliki Sou 3 lub więcej razy dziennie. Nie odizolowałem się od żadnych wtyczek, ale domyślam się, że to Web Essentials lub Power Tools.
Skowronek
1
@Alon Gingold - czy to nie jest tylko to, co powiedziałem 13 listopada? W każdym razie mam zainstalowane narzędzia Xamarin i zastanawiałem się, czy ktoś inny z problemem z plikiem .suo również ma ten problem?
Jason Steele
Mam zainstalowany xamarin i codziennie mam tylko ten problem z Visual Studio 2013
TombMedia
13

Nie musisz ponownie uruchamiać programu Visual Studio. Zamiast tego zamknij bieżące rozwiązanie, a następnie otwórz je ponownie. Mam jednak nadzieję, że było łatwiejsze rozwiązanie.

Aktualizacja 4/16 : Dla użytkowników XAML rozwiązanie, które działa, jest tak proste, jak celowe złamanie kodu; to powinno wystarczyć do odzyskania inteligencji. Więcej tutaj .

Nie można sprawdzić, czy to działa również w przypadku innych typów kodu, ale jeśli tak, zostaw komentarz.

przydatne
źródło
7
Nie musisz zamykać obecnego rozwiązania. Zamiast tego po prostu WINDOW> Zamknij wszystkie dokumenty.
jojo
12

Usuń plik .suo. Spróbuj tego, zadziałało dla mnie po tym, jak wszystko inne zawiodło.

Jason Steele
źródło
Przypomina mi o dawnych czasach, kiedy trzeba było ustawić plik .ncb jako tylko do odczytu, więc VS 2005 nie mógł go używać i rozłączał się, gdy przez 30 minut korzystał z nagłówków C ++.
Jon Harbor
6

Mam ten sam problem. Dla mnie wybranie końca ostatniej linii pliku, a następnie zapisanie pliku (ctrl-s) rozwiązuje problem.

ColinBurke
źródło
2

Powinienem najpierw zauważyć, że nie zdarzyło mi się to od czasu aktualizacji pamięci RAM do 16 GB.

Wydaje się, że dzieje się tak, gdy kopiuję / wklejam kontrolki na stronie. Innym skutkiem ubocznym jest to, że plik designer.vb nie jest aktualizowany od razu i nie mam dostępu do tych kontrolek w kodzie.

Oto kolejność kroków, przez które przechodzę:

  • Jeśli problem dotyczy tylko 1 pliku / okna, zamknij / ponownie otwórz ten plik.

W programie Visual Studio:

  1. Kliknij Narzędzia-> Opcje-> Edytor tekstu-> Wszystkie języki-> Ogólne
  2. Odznacz „Automatyczna lista członków”
  3. Odznacz „Informacje o parametrach”
  4. Zaznacz opcję „Automatyczna lista członków” (tak, ta, którą właśnie odznaczyłeś)
  5. Sprawdź „Informacje o parametrach” (ponownie tę, którą właśnie odznaczyłeś)
  6. Kliknij OK

Jeśli to nie zadziała, spróbuj wykonać kilka dodatkowych czynności:

  1. Jeśli nadal nie działa, zamknij wszystkie okna i otwórz ponownie
  2. Jeśli nadal nie działa, zamknij / ponownie otwórz rozwiązanie
  3. Jeśli nadal nie działa, uruchom ponownie VS.

W przypadku projektów C ++:
MSDN ma kilka rzeczy do wypróbowania: sugestie MSDN

Prawdopodobnie uszkodzony .ncbplik.

Z MSDN:

  1. Zamknij rozwiązanie.
  2. Usuń .ncbplik.
  3. Otwórz ponownie rozwiązanie. (Spowoduje to utworzenie nowego .ncbpliku).

(Jeszcze nie zorientowałem się, dlaczego w niektórych przypadkach wymagane są bardziej drastyczne kroki).

  • Testowane w VS 2013/15
  • Nie miałem tego problemu od czasu aktualizacji pamięci RAM
Tony L.
źródło
1

Miałem zły kod XAML. Nie dawał błędu podczas kompilacji, ale nadal uniemożliwiał poprawne działanie funkcji IntelliSense w pliku XAML.

Usunąłem następujący kod, aby rozwiązać problem: Binding = "{Binding ReturnCode & Info}"

problem „&”

Ropieć
źródło
1

Żadne z nich nie działało dla mnie, ale w końcu udało mi się to uruchomić, wyłączając Resharper. Nie jestem pewien, dlaczego było to konieczne, ponieważ mam inne rozwiązanie LS, w którym intelisense działa dobrze. Pomyślałem, że opublikuję to na wypadek, gdyby ktoś inny miał ten sam problem, co ja.

Adam47
źródło
1

Napotykam ten sam problem i rozwiązuję go. Należy o tym pamiętać, jeśli pracujesz z Silverlight, każdy nieprawidłowy kod XAML może spowodować awarię IntelliSense. Proponuję, jeśli pracujesz z Silverlight, skompiluj swój projekt pod kątem wykrywania nieprawidłowych kodów XAML i rozwiąż je w pierwszym kroku, a jeśli problem będzie się powtarzał, wykonaj powyższe kroki.

Cem Sönmez
źródło
1

Problem dotyczy plików .vcproj.

Przekonasz się, że jeśli przełączysz się do trybu wydania z trybu debugowania, zbudujesz, a następnie spróbujesz Intellisense, często działa.

Zamknij program Visual Studio. Jeśli szukasz plików .vcproj w swoim projekcie, edytuj je i wyszukaj pierwsze dwa wystąpienia AdditionalIncludeDirectories. Wartość tego powinna wyglądać mniej więcej tak: „.. \, .... \” niż „../ ..”.

Ponownie otwórz projekt, pozwól Intellisense zakończyć budowę, a następnie należy go naprawić.

Aaron Middleton
źródło
To naprawiło to dla mnie po ponownej instalacji VS nie.
SB2055,
1

Kroki do naśladowania:

  1. Przejdź do menu Narzędzia
  2. Kliknij „Importuj i eksportuj ustawienia”
  3. Wybierz „Zresetuj wszystkie ustawienia”. Kliknij Następny
  4. Utwórz kopię zapasową ustawień. Kliknij Następny
  5. Wybierz ustawienia środowiska (np. Ustawienia programowania Visual C #). Kliknij Finish.

Nie ma potrzeby ponownego uruchamiania programu Visual Studio.

ViPuL5
źródło
1

W jednym z moich projektów w ogóle wystąpił problem z funkcją Razor Intellisense. Żadna z powyższych poprawek nie zadziałała dla mnie. W końcu udało mi się rozwiązać ten problem, zmieniając wersję stron internetowych w konfiguracji sieciowej na 2.0.0.0 zamiast 3.0.0.0 pokazanego poniżej:

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

Mam nadzieję, że to pomoże komuś innemu.

Brad Germain
źródło
0

Żadne z powyższych nie pomogło w naprawieniu Intellisense na moim devboxie (VS2012). Próbowałem nawet "devenv / resetuserdata", co spowodowało konieczność ponownej instalacji wszystkich wtyczek.

Mimo to w projektach C ++ kod w blokach #if ABC ... #endif pozostaje wyszarzony.

W ramach tymczasowego obejścia modyfikuję #if ABC na #if 1 // ABC, a następnie cofam zmianę z powrotem po zakończeniu edycji bloku. Denerwujący...

EDYCJA: Kilka godzin później znalazłem lepsze rozwiązanie. Skomentowałem „#define ABC 1” w pliku nagłówkowym i dodałem „ABC = 1;” do Właściwości projektu-> C / C ++ -> Preprocesor-> Definicje preprocesora. Wtedy Intellisense zaczął działać poprawnie! Bloki kodu nie są wyszarzone.

Terry
źródło
Domyślne ustawienia programu Visual Studio spowodują wyszarzenie całego kodu, który kompilator pominie z powodu dyrektyw kompilatora, takich jak #if. Jeśli zdefiniowane stałe zmieniają się, gdy zmienia się aktywna konfiguracja (na przykład #define debugjest często ustawiana w trybie debugowania, a nie jest obecna w trybie wydania), wówczas część kodu, która jest wyszarzona, ulegnie zmianie.
Zarepheth
0

Miałem podobny problem w Visual Studio 2013, po prostu wyczyściłem rozwiązanie, a następnie usunąłem 4: Zamknij Visual Studio 2013 i usunąłem ten folder: %AppData%\Microsoft\VisualStudio\12.0i to rozwiązało problem.

KevinBBurns
źródło
0

Wyodrębniłem swoje problemy, aby VS Power Tools uszkodziło * .suo. Zamknięcie VS, usunięcie .suo, a następnie ponowne otwarcie rozwiązuje problem. Usuwa również wszystkie osobiste ustawienia tego rozwiązania.

Innym, mniej destrukcyjnym rozwiązaniem, na które natknąłem się, jest użycie polecenia „Edytuj plik projektu”, a następnie ponowne załadowanie projektu, aby ponownie uruchomić Intellisense.

Mam nadzieję, że to pomoże innym.

Skowronek
źródło
0

w przypadku VS2013 - projektu ASP.NET MVC 5 prostym sposobem rozwiązania tego problemu było zwolnienie i ponowne załadowanie określonego projektu.

Nikos Tsokos
źródło
0

W przypadku projektu Pythona skończyło się na usunięciu ukrytego folderu .vs, pliku .sln i pliku .pyproj. Następnie odtworzyłem projekt z istniejącego kodu i Intellisense znów działa.

Mike Bourbeau
źródło
0

Zamknięcie karty, która nie działa, zrobiło to za mnie.

ps zapisałbym przed rozdaniem, na wypadek gdyby VS był dziwny;)

Aha, a skrót to Ctrl + Alt + Spacja (aby przełączać się między trybami sugestii a standardowymi trybami uzupełniania)

James Heffer
źródło
0

Wielokrotnie mierzyłem się z tymi problemami i nadal je mam.

Rozwiązaniem, które zadziałało dla mnie, było skrócenie długości ścieżki, na której umieszczane jest rozwiązanie. Umieściłem rozwiązanie bliżej dysku C (c: /code/your_project.sln) i właśnie rozwiązało problem z inteligencją. To zawsze rozwiązuje problem.

Md Naushad
źródło
-1

Żadne z powyższych nie działało dla mnie. Przy bliższym przyjrzeniu się zauważyłem, że funkcja Intellisense działała na niektórych plikach, ale nie na wszystkich. A potem odkrył, że to tylko jeden plik. Wreszcie otworzył plik .proj, który zawierał:

  <ItemGroup>
<None Include="App.config" />
<None Include="packages.config" />
<Compile Include="Generator.cs" />
<Compile Include="PDFDocument2.cs" />
<None Include="PDFDocument.cs" />
<Compile Include="PdfDaemon.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />

Oczywiście Intellisense nie działa na pliku, który nie jest oznaczony jako do kompilacji.

Pitchmatt
źródło