Visual Studio 2015 Broken Razor Intellisense


140

Dopo aver installato e quindi riparato la mia istanza VS2015, non riesco ancora a far funzionare intellisense (lato server) nelle viste MVC. Vengo avvisato dal messaggio non appena apro per la prima volta in una sessione un file .cshtml e mi indirizzo al file Activitylog. Messaggio di errore recuperato in ActivityLog.xml (versione corta):

System.ArgumentException: l'elemento è già stato aggiunto. Chiave nel dizionario: "RazorSupportedRuntimeVersion"

Ecco la versione completa:

System.Reflection.TargetInvocationException: l'eccezione è stata generata dalla destinazione di una chiamata. ---> System.ArgumentException: l'articolo è già stato aggiunto. Chiave nel dizionario: "RazorSupportedRuntimeVersion"Chiave aggiunta: "RazorSupportedRuntimeVersion" in System.Collections.Hashtable.Insert (chiave oggetto, valore oggetto, valore booleano) in System.Collections.Hashtable.Add (chiave oggetto, valore oggetto) in System.Collections.Specialized.HybridDictionary.Add (Chiave oggetto, Valore oggetto) in Microsoft.VisualStudio.Utilities.PropertyCollection.AddProperty (Chiave oggetto, Proprietà oggetto) in Microsoft.VisualStudio.Html.Package.Razor.RazorVersionDetector.Microsoft.Html.Editor.ContainedLanguage.Razor.Def.IRetor .GetVersion (ITextBuffer textBuffer) su Microsoft.Html.Editor.ContainedLanguage.Razor.RazorUtility.TryGetRazorVersion (ITextBuffer textBuffer, Version & razorVersion) su Microsoft.Html.Editor.ContainedLanguage.RazerTaggorB.RazerTaggor: della traccia dello stack delle eccezioni interne --- nel sistema.RuntimeMethodHandle.InvokeMethod (Target oggetto, Argomenti Object [], Firma firma, Costruttore booleano) su System.Reflection.RuntimeConstructorInfo.Invoke (BindingFlags invokeAttr, Binder binder, Object [] parametri, CultureInfo culture) su System.RuntimeType.CreateInagsImplA , Raccoglitore di leganti, Argomenti di oggetto [], Cultura di CultureInfo, Attivazione di oggetti [] Attributes, StackCrawlMark & ​​stackMark) su System.Activator.CreateInstance (Tipo di tipo, BindingFlags bindingAttr, Raccoglitore di leganti, Object [] args, Cultura di CultureInfo, Oggetto [] ActivAttributes) System.Activator.CreateInstance (Type type, Object [] args) su Microsoft.Html.Editor.ContainedLanguage.Common.ContainedCodeErrorTaggerProvider'1.CreateTagger [T] (ITextBuffer textBuffer) su Microsoft.VisualStudio.Text.Tagging.Implementation.TagAggregator '1.GatherTaggers (ITextBuffer textBuffer)

Se è di aiuto, ho alcune personalizzazioni di colorazione dei caratteri e ho installato le estensioni Web Essentials, Bundler & Minifier e Web Compiler.

AGGIORNAMENTO : succede quando apro un'applicazione Web esistente o quando ne creo una nuova da zero. Esiste anche un'istanza di VS2013 installata e in esecuzione sullo stesso computer.

Nessun intellisense

Come puoi vedere dalla foto sopra, non ottengo alcun intellisense, né alcun tipo di colorazione del codice.

Qualche idea su come risolverlo? Grazie in anticipo.


1
Prova ad avviare un nuovo progetto Web utilizzando il modello Web predefinito. Se funziona, il problema è legato al tuo progetto. Almeno è più facile restringerlo.
Rosdi Kasim,

Scusa Rosdi, ho dovuto fornire maggiori dettagli. Ho aggiornato il testo sopra di conseguenza. A proposito, continuando a cercare su Google ho appena trovato un feedback aperto qui connect.microsoft.com/VisualStudio/feedback/details/1579142/… che riporta il mio stesso identico problema.
Cristian Merighi,

Prova questo: stackoverflow.com/questions/17598359/… ha funzionato per me
Knerd

Ciao Knerd, il fatto è che non ho affatto intellisense (vedi foto sopra). Mi sembra più un problema di Visual Studio di base rispetto ad alcune impostazioni di progetto errate (ottengo lo stesso problema nelle viste predefinite del modello di un nuovo progetto).
Cristian Merighi,

Ecco come ho risolto un problema molto simile a VS 2015 RTM: stackoverflow.com/a/32308899/1551276
Vladimir Abashin

Risposte:


127

Ho risolto questo problema ripristinando i dati dell'utente

devenv.exe /resetuserdata

e rimuovere la cartella ".vs" nel mio progetto.


ATTENZIONE: questo ripristinerà tutte le impostazioni dell'utente. In sostanza, è come ripristinare le impostazioni di fabbrica. Perderai tutte le scorciatoie da tastiera personalizzate, le estensioni che hai installato ecc.


14
Non ho dovuto rimuovere la cartella .vs per risolvere questo problema. resetuserdata è bastato
Phil

9
Assicurati di eseguirlo da questa cartella "C: \ Programmi (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \" specialmente se sul tuo computer sono installati più VS.
Miguel,

10
Per me devenv.exe /resetuserdata non ho risolto il problema! Cordiali saluti: Non ottengo alcun errore ma VS non dipinge la sintassi per le viste Razor.
A-Sharabiani,

7
Tieni presente che perderai tutte le impostazioni di Visual Studio come estensioni e credenziali (dell'account a cui hai eseguito l'accesso)! VS deve essere chiuso prima di correre devenv.exe /resetuserdata.
fabriciorissetto,

9
Prima di utilizzare questo comando, sapere cosa fa. Oltre a piccoli inconvenienti come la disconnessione da Visual Studio e il ripristino di Windows, ha anche disinstallato diverse estensioni e Resharper. Trovare le versioni corrette da reinstallare ha richiesto più tempo del previsto.
Jason,

162

Questo è stato ricorrente anche per me e sembra essere collegato agli aggiornamenti delle estensioni, ma non sono ancora stato in grado di incolpare nulla di specifico. Ciò che ho potuto scoprire è una risoluzione meno invadente.

Nel mio caso, l'eliminazione del contenuto di questa directory consente all'IDE di recuperare:

%LocalAppData%\Microsoft\VisualStudio\14.0\ComponentModelCache

Modifica: ho appena trovato questo che potrebbe essere utile anche - Cancella MEF Component Cache (Apri VSIX Gallery)


6
ResetUserData ha funzionato per me, ma il problema è tornato. Funziona ed è molto meno invadente (non è necessario ripristinare tutte le estensioni).
ChadT,

13
Questo ha funzionato per me senza eseguire devenv.exe / resetuserdata
Jaecen il

4
Questo ha funzionato anche per me. Ho provato prima il comando resetuserdata, ma questo non sembrava fare nulla. Questo ha funzionato subito!
Sì,

4
Ha funzionato per me, è successo più volte e ho sempre reimpostato i dati dell'utente ed è terribile, utilizzo Roaming Extension Manager per semplificare la reinstallazione delle estensioni
ivi.hamiti,

2
Non è stato risolto il problema in VS2015 Professional. L'evidenziazione della sintassi del rasoio e l'intellisense continuano a non funzionare. Non vengono visualizzati errori.
Justin Skiles,

11

FWIW, ho avuto questo problema con VS 2015 Enterprise su due macchine diverse. Su una macchina, il ripristino dei dati utente ha fatto scomparire il problema (per un po '). Sull'altra macchina, ho dovuto disinstallare e reinstallare totalmente VS e il problema è scomparso per un po '. Su entrambe le macchine, il problema si è ripresentato dopo aver installato un'estensione (una volta durante l'installazione di Web Essentials, una volta durante l'installazione di Git Diff Margin).

Ho masterizzato un caso di supporto tecnico MSDN e la risposta è stata ... Sì, è un bug, MS lo sa e ci stanno lavorando.

Non una risposta particolarmente attuabile, ma una risposta comunque ...

EDIT: E per quanto riguarda il problema, ho riscontrato il problema alcune volte più da quando ho pubblicato questa "risposta". Più di recente, ho installato un aggiornamento a NuGet Package Manager e quando VS ha riavviato ha iniziato a riscontrare questo problema. Corsi devenv.exe /resetuserdata, ma non mi aiutò; era ancora rotto. Quindi ho provato di nuovo (corso devenv.exe /resetuserdata) e, bada bing bada boom, il problema è andato via (per ora). La morale sembra essere qualcosa del tipo "se all'inizio non ci riesci ..."


Qualche avvertimento che questo cancella assolutamente tutto sarebbe utile. La configurazione del mio pannello è sparita, l'evidenziazione della sintassi è sparita e il problema non è stato ancora risolto. :( Come posso recuperare i miei dati?
Henry Ing-Simmons,

8

Potrebbe essere successo in coppia ad avere Resharper.
Verrà risolto nelle versioni future ma a partire da ora (versione 10.0.2) è rotto. Resharper sovrascrive l'intellisense di Visual Studio e pertanto non funzionerà. Il che spiega anche perché l'esecuzione lo devenv.exe /ResetUserDatacorregge poiché lo rimuove Resharper.

Restituisci manualmente il potere intellisense a VS attraverso il menu:
ReSharper>> Enviroment>> IntelliSense>> Riempi quanto segue:
inserisci qui la descrizione dell'immagine

Ed è così che dovrebbe apparire l'intellisense di VS:
inserisci qui la descrizione dell'immagine


6

Ho riscontrato lo stesso problema, ma la causa era diversa dalle altre risposte.

Un aggiornamento di Visual Studio, sospetto che l'aggiornamento di TypeScript a settembre 2015, abbia disinstallato il componente Strumenti per gli sviluppatori Web di Visual Studio 2015. In questo modo Intellisense non funziona.

Ho installato di nuovo Strumenti per gli sviluppatori Web nelle opzioni di installazione E ho eliminato ComponentModelCache dopo l'installazione. Questo ha funzionato per me.


Questo ha risolto il problema anche per me. Durante una riparazione su VS2015 tramite l'aggiunta / rimozione di programmi, ho notato che gli Strumenti per gli sviluppatori Web non erano nemmeno installati. Selezionando la casella e completando ha funzionato.
Anders Jakobsen,

4

Questo mi ha risolto subito.

In Visual Studio:

Fai clic su Strumenti-> Opzioni-> Editor di testo-> Tutte le lingue-> Generale Deseleziona "Membri elenco automatico" Deseleziona "Informazioni sui parametri" Seleziona "Membri elenco automatico" (sì, quello che hai appena deselezionato) Controlla "Informazioni sui parametri" (di nuovo, quello che hai appena deselezionato) Fai clic su OK


Ho provato resetuserdata, elimina vssc, cancella componentcache e non ha funzionato. Dopo che ho provato questo ed è funzionato! Grazie
c0demaster il


1

La /ResetUserDatasoluzione è la soluzione migliore, ma penso anche di aver scoperto una possibile causa di questo ...

Attualmente sto usando Umbraco per creare macro parziali in BackOffice. Quando questi file vengono creati, faccio clic sul pulsante Nascondi / Mostra tutti i file per mostrare il Macro parziale nella mia soluzione e l'evidenziazione della sintassi del rasoio sembra smettere di funzionare, quindi suppongo siano nuovi file introdotti nella soluzione che non sono stati creati direttamente tramite VS causare questo problema.

Anche quando si aggiungono i file alla soluzione l'evidenziazione della sintassi non funziona.


Interessante, visto che lo sto vivendo anche con Umbraco. Umbraco 7.4.3 e VS 2015, in particolare ..
Brian Lacy,

1

A volte, VS Ide non mostra affatto Intellisense. Ho appena chiuso la soluzione. Chiudi VS. Quindi riaprirlo e il problema è risolto.


1

Esiste un'altra soluzione, senza ripristinare tutti i dati utente

(ma solo layout di finestre / barre degli strumenti):

chiudere tutte le istanze di VS2015, [eventualmente eseguire il backup ed] eliminare la cartella:

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

Ora, riapri VS2015: il layout è stato ripristinato alle impostazioni di fabbrica, ma la sintassi del rasoio avrebbe funzionato


1

Cordiali saluti: La mia installazione VS 2015 PRO ha installazione completa con tutte le terze parti.

Ho provato tutte le possibili soluzioni che qui nell'articolo non mi hanno aiutato. Quello che Craig Goldensoph ha scritto mi ha aiutato parzialmente a trovare la soluzione per me.

Quindi prima ho fatto: Deseleziona tutte le caselle di controllo per l'Editor di testo-> Tutte le lingue-> Completamento dell'istruzione generale: inserisci qui la descrizione dell'immagine

Dopo aver fatto clic su OK- Riapri nuovamente la finestra di dialogo delle opzioni: E controlla tutto per la stessa sezione: inserisci qui la descrizione dell'immagine

e applicare nuovamente le impostazioni. Devi riavviare Visual Studio. Dopo il riavvio ci vorrà del tempo per caricare, ma dopo ha funzionato per me.


Problema comune. Quello che ho letto tutti avevano problemi simili ed è stato sempre risolto in modo diverso. Ho appena condiviso ciò che mi ha aiutato. Spiacente, non potrebbe essere una soluzione per tutti.
Eugene Bosikov,

1

Se nessuna delle altre opzioni funziona, esiste una soluzione alternativa. Dopo aver inserito il '.' l'operatore preme i tasti "Ctrl + Spazio" per forzare la visualizzazione della finestra di dialogo Intellisense.

Stavo avendo questo problema quando lavoravo con i file di rasoio .cshtml MVC.


0

Potrebbe sembrare divertente ma solo per fare una cosa ...

Posiziona Breakpoint su qualsiasi linea, quindi attendi 5 secondi che non funzionino, quindi vai alla prima riga e inserisci il punto di interruzione e, quando inserisci il punto di interruzione, ti verranno chieste le impostazioni del punto di interruzione. inserisci qui la descrizione dell'immagine fai clic su quelle impostazioni e chiudi quelle impostazioni. Fatto. il tuo intellisense ora funziona.

Ho una VS 2015 Community Edition. Precedentemente avevo VS 2015 Enterprise ed è successo su questo, ma dopo aver ottenuto la community ho scoperto che lo stesso accade e la stessa soluzione funziona per entrambi.

Ho trovato quella soluzione accidentalmente durante il lavoro, anche quando il progetto non è in esecuzione e puoi anche rimuovere quel punto di interruzione.


0

Non è necessario ripristinare tutto, basta rimuovere tutti i file %LocalAppData%\Microsoft\VisualStudio\14.0\ComponentModelCachee riavviare VS, andrà bene.


0

Ho pubblicato questa risposta su un'altra domanda SO, solo perché voglio impedire alle persone di sprecare il tempo che ho appena perso. Il mio problema era che avevo aggiunto file a un progetto, ma non li avevo inclusi. Quindi ho scelto di mostrare tutti i file:

inserisci qui la descrizione dell'immagine

quindi ha scelto di includere le cartelle:

inserisci qui la descrizione dell'immagine

Il problema si presenta solo quando si apre un sito Web MVC come progetto e non quando lo si apre direttamente come sito Web.



0

Il mio era un leggero dolore al chester, ma sembrava funzionare. Nel mio caso si trattava di un file .aspx che non avrebbe più fatto intellisense (dopo aver stupidamente cambiato il nome del file .aspx ... lezione imparata!)

  1. Per esempio, ho copiato tutto il mio codice dai file (.aspx e .cs) nel blocco note.
  2. Eliminato il file .aspx (che a sua volta ha eliminato tutti i file figlio).
  3. Ho salvato il mio progetto. Creato un nuovo file aspx con lo stesso nome.
  4. Copia / incolla il mio codice dal blocco note.
  5. L'ho salvato.
  6. Ho provato di nuovo l'intellisense. Ha funzionato!

Intorno alla strada ma non male come la disinstallazione / vs reinstallazione che è TOTALMENTE eccessivo. Buona fortuna a tutti! Spero che MS abbia risolto questo problema in uno di questi anni!

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.