Visual Studio 2015 Broken Razor Intellisense


140

Po zainstalowaniu, a następnie naprawieniu mojej instancji VS2015 nadal nie mogę uruchomić funkcji Intellisense (po stronie serwera) w moich widokach MVC. Kiedy otwieram po raz pierwszy w sesji plik .cshtml i jestem adresowany do pliku Activitylog, pojawia się komunikat o błędzie . Komunikat o błędzie pobrany z ActivityLog.xml (wersja skrócona):

System.ArgumentException: element został już dodany. Klucz w słowniku: „RazorSupportedRuntimeVersion”

Oto pełna wersja:

System.Reflection.TargetInvocationException: Wyjątek został zgłoszony przez cel wywołania. ---> System.ArgumentException: pozycja została już dodana. Klucz w słowniku: „RazorSupportedRuntimeVersion”Dodawany klucz: „RazorSupportedRuntimeVersion” w System.Collections.Hashtable.Insert (Object key, Object nvalue, Boolean add) at System.Collections.Hashtable.Add (Object key, Object value) at System.Collections.Specialized.HybridDictionary.Add (Klucz obiektu, wartość obiektu) w Microsoft.VisualStudio.Utilities.PropertyCollection.AddProperty (klucz obiektu, właściwość obiektu) w Microsoft.VisualStudio.Html.Package.Razor.RazorVersionDetector.Microsoft.Html.Editor.ContainedLanguage.RazorV.Defet.IR .GetVersion (ITextBuffer textBuffer) w Microsoft.Html.Editor.ContainedLanguage.Razor.RazorUtility.TryGetRazorVersion (ITextBuffer textBuffer, Version & razorVersion) w Microsoft.Html.Editor.ContainedLanguage.RazctorTextRazorBuffer --- wewnętrznego śledzenia stosu wyjątków --- w System.RuntimeMethodHandle.InvokeMethod (Object target, Object [] arguments, Signature sig, Boolean constructor) at System.Reflection.RuntimeConstructorInfo.Invoke (BindingFlags invokeAttr, Binder binder, Object [] parametry, CultureInfo culture) w System.RuntimeType.CreateInstinding , Binder binder, Object [] args, CultureInfo culture, Object [] aktywacjaAttributes, StackCrawlMark & ​​stackMark) w System.Activator.CreateInstance (Type type, BindingFlags bindingAttr, Binder binder, Object [] args, CultureInfo culture, Object [] aktywacjaAttributes) w System.Activator.CreateInstance (Type type, Object [] args) w Microsoft.Html.Editor.ContainedLanguage.Common.ContainedCodeErrorTaggerProvider'1.CreateTagger [T] (ITextBuffer textBuffer) w Microsoft.VisualStudio.Text.Tagregator.Implementacja1.GatherTaggers (ITextBuffer textBuffer)

Jeśli to jakakolwiek pomoc, mam kilka dostosowań kolorowania czcionek i mam zainstalowane rozszerzenia Web Essentials, Bundler & Minifier i Web Compiler.

AKTUALIZACJA : dzieje się tak, gdy otwieram istniejącą aplikację internetową lub tworzę zupełnie nową od podstaw. Istnieje również instancja VS2013 zainstalowana i uruchomiona na tym samym komputerze.

W ogóle nie ma inteligencji

Jak widać na powyższym zdjęciu, nie dostaję w ogóle inteligencji ani żadnego kolorowania kodu.

Masz jakąś wskazówkę, jak to naprawić? Z góry dziękuję.


1
Spróbuj rozpocząć nowy projekt sieci Web przy użyciu domyślnego szablonu sieci Web. Jeśli to działa, problem jest związany z Twoim projektem. Przynajmniej łatwiej jest to zawęzić.
Rosdi Kasim

Przepraszam Rosdi, musiałem podać więcej szczegółów. Odpowiednio zaktualizowałem powyższy tekst. Swoją drogą, dalej googlowanie. Właśnie znalazłem otwartą opinię tutaj connect.microsoft.com/VisualStudio/feedback/details/1579142/ ... która zgłasza dokładnie ten sam problem.
Cristian Merighi

Spróbuj tego: stackoverflow.com/questions/17598359/ ... pracował dla mnie
Knerd.

Cześć Knerd, faktem jest, że w ogóle nie dostaję inteligencji (patrz zdjęcie powyżej). Wydaje mi się bardziej, że jest to podstawowy problem ze studiem wizualnym niż niektóre złe ustawienia projektu (ten sam problem pojawia się w domyślnych widokach szablonów zupełnie nowego projektu).
Cristian Merighi

W ten sposób naprawiłem bardzo podobny problem w VS 2015 RTM: stackoverflow.com/a/32308899/1551276
Vladimir Abashin

Odpowiedzi:


127

Rozwiązałem ten problem, resetując dane użytkownika

devenv.exe /resetuserdata

i usuń folder „.vs” w moim projekcie.


OSTRZEŻENIE: spowoduje to zresetowanie wszystkich ustawień użytkownika. Zasadniczo przypomina to przywracanie ustawień fabrycznych. Utracisz wszelkie niestandardowe skróty klawiaturowe, zainstalowane rozszerzenia itp.


14
Nie musiałem usuwać folderu .vs, aby rozwiązać ten problem. resetuserdata wystarczył
Phil

9
Po prostu upewnij się, że uruchamiasz go z tego folderu „C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \”, szczególnie jeśli masz więcej niż jeden program VS zainstalowany na komputerze.
Miguel

10
U mnie devenv.exe /resetuserdata nie rozwiązałem problemu! FYI: Nie otrzymuję żadnych błędów, ale VS nie maluje składni dla widoków Razor.
A-Sharabiani

7
Pamiętaj, że utracisz wszystkie ustawienia programu Visual Studio, takie jak rozszerzenia i poświadczenia (konta, na którym jesteś zalogowany)! VS musi zostać zamknięty przed uruchomieniem devenv.exe /resetuserdata.
fabriciorissetto

9
Zanim użyjesz tego polecenia, dowiedz się, co robi. Oprócz drobnych niedogodności, takich jak wylogowanie z programu Visual Studio i resetowanie okien, odinstalował również kilka rozszerzeń i Resharper. Znalezienie poprawnych wersji do ponownej instalacji zajęło więcej czasu, niż się spodziewałem.
Jason

162

To się też powtarza i wydaje się być powiązane z aktualizacjami rozszerzeń, ale nie byłem jeszcze w stanie winić niczego konkretnego. To, co udało mi się odkryć, to mniej inwazyjne rozwiązanie.

W moim przypadku usunięcie zawartości tego katalogu umożliwia IDE odzyskanie:

%LocalAppData%\Microsoft\VisualStudio\14.0\ComponentModelCache

Edycja: właśnie natknąłem się na ten, który może być również przydatny - Wyczyść pamięć podręczną składników MEF (Otwórz galerię VSIX)


6
ResetUserData działał dla mnie, ale problem powrócił. To działa i jest znacznie mniej uciążliwe (nie ma potrzeby przywracania wszystkich rozszerzeń).
ChadT,

13
To zadziałało dla mnie bez uruchamiania devenv.exe / resetuserdata
Jaecen,

4
U mnie też to zadziałało. Najpierw wypróbowałem polecenie resetuserdata, ale wydawało się, że nic nie dało. To zadziałało od razu!
yesman

4
U mnie zadziałało, zdarzyło się to kilka razy i zawsze resetowałem dane użytkownika i jest to okropne, używam Roaming Extension Manager, aby uprościć ponowną instalację rozszerzeń
ivi.hamiti

2
Nie rozwiązano problemu w VS2015 Professional. Podświetlanie składni Razor i inteligencja nadal nie działają. Nie są wyświetlane żadne błędy.
Justin Skiles

11

FWIW, miałem ten problem z VS 2015 Enterprise na dwóch różnych komputerach. Na jednym komputerze zresetowanie danych użytkownika spowodowało, że problem zniknął (na chwilę). Na drugim komputerze musiałem całkowicie odinstalować i ponownie zainstalować VS, a problem na chwilę zniknął. Na obu komputerach problem powrócił po zainstalowaniu rozszerzenia (raz podczas instalacji Web Essentials, raz podczas instalacji Git Diff Margin).

Spaliłem zgłoszenie do pomocy technicznej MSDN, a odpowiedź brzmiała ... Tak, to błąd, MS wie o tym i pracują nad tym.

Nie jest to szczególnie przydatna odpowiedź, ale mimo to odpowiedź ...

EDYCJA: A jeśli chodzi o obejście problemu, napotkałem ten problem kilka razy, odkąd opublikowałem tę „odpowiedź”. Ostatnio zainstalowałem aktualizację Menedżera pakietów NuGet, a po ponownym uruchomieniu programu VS zaczął mieć ten problem. Pobiegłem devenv.exe /resetuserdata, ale to nie pomogło; nadal był zepsuty. Więc spróbowałem ponownie (pobiegłem devenv.exe /resetuserdata) i, bada bing bada boom, problem zniknął (na razie). Morał wydaje się być czymś w rodzaju „jeśli na początku nie odniesiesz sukcesu ...”


Przydałoby się pewne ostrzeżenie, że to usuwa absolutnie wszystko. Moja konfiguracja panelu zniknęła, zniknęło podświetlanie składni, a problem nadal nie został rozwiązany. :( Jak mogę odzyskać moje dane?
Henry Ing-Simmons,

8

Mógł się zdarzyć duet Resharper.
Zostanie to naprawione w przyszłych wersjach, ale na razie (wersja 10.0.2) jest zepsute. Resharper zastępuje intelisense programu Visual Studio i dlatego nie będzie działać. Co wyjaśnia również, dlaczego uruchomienie devenv.exe /ResetUserDatago naprawia, skoro usuwa Resharper.

Ręcznie przywróć moc Intellisense do VS za pośrednictwem menu:
ReSharper>> Enviroment>> IntelliSense>> Wypełnij następujące elementy:
wprowadź opis obrazu tutaj

A tak powinien wyglądać Intellisense z VS:
wprowadź opis obrazu tutaj


6

Spotkałem ten sam problem, ale przyczyna była inna niż w przypadku innych odpowiedzi.

Aktualizacja Visual Studio, podejrzewam, że aktualizacja TypeScript we wrześniu 2015 roku, odinstalowała komponent Web Developer Tools w Visual Studio 2015. To powoduje, że Intellisense nie działa.

Ponownie zainstalowałem Web Developer Tools w opcjach instalatora ORAZ usunąłem ComponentModelCache po instalacji. To zadziałało dla mnie.


To rozwiązało również problem dla mnie. Podczas naprawy VS2015 za pomocą dodawania / usuwania programów, zauważyłem, że narzędzia Web Developer Tools nie zostały nawet zainstalowane. Sprawdzenie pudełka i zakończenie zadziałało.
Anders Jakobsen

4

To naprawiło to dla mnie od razu.

W programie Visual Studio:

Kliknij Narzędzia-> Opcje-> Edytor tekstu-> Wszystkie języki-> Ogólne Odznacz "Auto lista członków" Odznacz "Informacje o parametrach" Zaznacz "Auto listy członków" (tak, ten, który właśnie odznaczyłeś) Zaznacz "Informacje o parametrach" (ponownie, ten, który właśnie odznaczyłeś) Kliknij OK


Próbowałem resetuserdata, usunąć vssc, wyczyścić pamięć podręczną komponentów i nie działało. Po wypróbowaniu tego i działa! Dziękuję
c0demaster


1

/ResetUserDataRozwiązanie jest najlepszy, ale też myślę, że okazało się, możliwą przyczyną tego ...

Obecnie używam Umbraco do tworzenia makr częściowych w BackOffice. Po utworzeniu tych plików klikam przycisk Ukryj / Pokaż wszystkie pliki, aby wyświetlić Makro Częściowe w moim rozwiązaniu, a Podświetlanie składni Razor wydaje się przestać działać, więc przypuszczam, że są nowe pliki wprowadzone do twojego rozwiązania, które nie zostały utworzone bezpośrednio przez VS spowodować ten problem.

Nawet podczas dodawania plików do rozwiązania Podświetlanie składni nie działa.


Interesujące, ponieważ doświadczam tego również z Umbraco .. Umbraco 7.4.3 i VS 2015, a konkretnie ..
Brian Lacy

1

Czasami VS Ide w ogóle nie pokazuje Intellisense. Po prostu zamykam rozwiązanie. Zamknij VS. Następnie otwórz go ponownie, a problem zostanie rozwiązany.


1

Jest inne rozwiązanie, bez resetowania wszystkich danych użytkownika

(ale tylko układy okien / paski narzędzi):

zamknij wszystkie instancje VS2015, [ewentualnie wykonaj kopię zapasową i] usuń folder:

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

Teraz ponownie otwórz VS2015: układ został zresetowany do ustawień fabrycznych, ale składnia Razor będzie działać


1

FYI: Moja instalacja VS 2015 PRO ma pełną instalację ze wszystkimi stronami trzecimi.

Wypróbowałem wszystkie możliwe rozwiązania, które tutaj w artykule mi nie pomogły. To, co napisał Craig Goldensoph, pomogło mi częściowo w znalezieniu dla mnie rozwiązania.

Więc najpierw zrobiłem: odznacz wszystkie pola wyboru dla Edytora tekstu-> Wszystkie języki-> Uzupełnianie instrukcji ogólnej: wprowadź opis obrazu tutaj

Po kliknięciu OK - ponownie otwórz okno dialogowe opcji: I sprawdź wszystkie dla tej samej sekcji: wprowadź opis obrazu tutaj

i ponownie zastosuj ustawienia. Musisz ponownie uruchomić swoje studio Visual. Po ponownym uruchomieniu ładowanie zajmie trochę czasu, ale potem zadziałało.


Powszechny problem. To co przeczytałem, każdy miał podobne problemy i zawsze było to naprawiane w inny sposób. Po prostu podzieliłem się tym, co mi pomogło. Przepraszamy, nie dla wszystkich było to rozwiązanie.
Eugene Bosikov

1

Jeśli żadna z pozostałych opcji nie działa, istnieje obejście. Po wpisaniu „.” Operator naciśnij klawisze „Ctrl + Spacja”, co powinno wymusić wyświetlenie okna dialogowego Intellisense.

Miałem ten problem podczas pracy z plikami Razor .cshtml MVC.


0

Może to zabrzmieć zabawnie, ale wystarczy zrobić jedną rzecz ...

Umieść punkt przerwania na dowolnej linii, a następnie odczekaj 5 sekund, co nie zadziała, a następnie przejdź do pierwszej linii i umieść punkt przerwania w tym miejscu, a gdy wstawisz punkt przerwania, zapyta o ustawienia punktu przerwania. wprowadź opis obrazu tutaj kliknij te ustawienia i zamknij te ustawienia. Gotowe. Twój Intellisense teraz działa.

Mam VS 2015 Community Edition. Wcześniej miałem VS 2015 Enterprise i tak się stało, ale po uzyskaniu społeczności okazało się, że to samo dzieje się i to samo rozwiązanie działa dla obu.

Znalazłem to rozwiązanie przypadkowo podczas pracy, zrób to również, gdy projekt nie jest uruchomiony, a także możesz usunąć ten punkt przerwania.


0

Nie musisz resetować wszystkiego, po prostu usuń wszystkie pliki z %LocalAppData%\Microsoft\VisualStudio\14.0\ComponentModelCachei uruchom ponownie VS, wszystko będzie dobrze.


0

Opublikowałem tę odpowiedź na inne pytanie SO, tylko dlatego, że chcę, aby ludzie nie marnowali czasu, który właśnie zmarnowałem. Mój problem polegał na tym, że dodałem pliki do projektu, ale ich nie uwzględniłem. Więc zdecydowałem się pokazać wszystkie pliki:

wprowadź opis obrazu tutaj

następnie wybierz dołączenie folderów:

wprowadź opis obrazu tutaj

Problem pojawia się tylko wtedy, gdy otwierasz witrynę MVC jako projekt, a nie, gdy otwierasz ją bezpośrednio jako witrynę internetową.



0

Mój był lekki ból w gorączce, ale wydawało się, że działa. W moim przypadku był to plik .aspx, który już nie robiłby funkcji Intellisense (po tym, jak głupio zmieniłem nazwę pliku .aspx ... lekcja wyciągnięta!)

  1. Na przykład skopiowałem cały mój kod z plików (.aspx i .cs) do notatnika.
  2. Usunięto plik .aspx (który z kolei usunął wszystkie pliki podrzędne).
  3. Zapisałem mój projekt. Utworzono nowy plik .aspx o tej samej nazwie.
  4. Skopiuj / wklej mój kod z notatnika.
  5. Uratowałem to.
  6. Ponownie spróbowałem Intellisense. Zadziałało!

W kółko, ale nie tak źle, jak odinstalowanie / a ponowna instalacja, która jest CAŁKOWICIE przesadzona. Powodzenia wszystkim! Miejmy nadzieję, że stwardnienie rozsiane naprawi to przez jeden z tych lat!

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.