Visual Studio 2015 Broken Razor Intellisense

140

Après avoir installé puis réparé mon instance VS2015 , je ne parviens toujours pas à faire fonctionner intellisense (côté serveur) dans mes vues MVC. Je suis alerté par une invite de message dès que j'ouvre pour la première fois dans une session un fichier .cshtml et je suis adressé au fichier Activitylog. Message d'erreur récupéré dans ActivityLog.xml (version courte):

System.ArgumentException: l'élément a déjà été ajouté. Clé dans le dictionnaire: 'RazorSupportedRuntimeVersion'

Voici la version complète:

System.Reflection.TargetInvocationException: une exception a été levée par la cible d'un appel. ---> System.ArgumentException: l'élément a déjà été ajouté. Clé dans le dictionnaire: 'RazorSupportedRuntimeVersion'Clé ajoutée: 'RazorSupportedRuntimeVersion' à 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 (Clé d'objet, valeur d'objet) chez Microsoft.VisualStudio.Utilities.PropertyCollection.AddProperty (Clé d'objet, propriété d'objet) chez Microsoft.VisualStudio.Html.Package.Razor.RazorVersionDetector.Microsoft.Html.Editor.ContainedLanguage.Razor.DefDetIRazorVersion .GetVersion (ITextBuffer textBuffer) à Microsoft.Html.Editor.ContainedLanguage.Razor.RazorUtility.TryGetRazorVersion (ITextBuffer textBuffer, Version & razorVersion) à Microsoft.Html.Editor.ContainedLanguage.Razor.TextBuffer_TextBuffer_TextBuffer (ITextBuffer textBuffer, Version & razorVersion) à Microsoft.Html.Editor.ContainedLanguage.Razor.TextBuffer (ITextBuffer) de trace de pile d'exceptions interne --- à System.RuntimeMethodHandle.InvokeMethod (Object target, Object [] arguments, Signature sig, Boolean constructor) à System.Reflection.RuntimeConstructorInfo.Invoke (BindingFlags invokeAttr, Binder binder, Object [] parameters, CultureInfo culture) à System.RuntimeType.CreateInFliance , Binder binder, Object [] args, CultureInfo culture, Object [] activationAttributes, StackCrawlMark & ​​stackMark) à System.Activator.CreateInstance (Type type, BindingFlags bindingAttr, Binder binder, Object [] args, CultureInfo culture, Object [] activationAttributes) à System.Activator.CreateInstance (Type type, Object [] args) sur Microsoft.Html.Editor.ContainedLanguage.Common.ContainedCodeErrorTaggerProvider'1.CreateTagger [T] (ITextBuffer textBuffer) sur Microsoft.VisualStudio.Tgg.Tagging.Implementation.1.GatherTaggers (ITextBuffer textBuffer)

Si cela peut vous aider, j'ai quelques personnalisations de coloration des polices et les extensions Web Essentials, Bundler & Minifier et Web Compiler sont installées.

MISE À JOUR : cela se produit soit lorsque j'ouvre une application Web existante, soit lorsque j'en crée une toute nouvelle à partir de zéro. Il existe également une instance de VS2013 installée et exécutée sur la même machine.

Pas d'intellisense du tout

Comme vous pouvez le voir sur la photo ci-dessus, je n'obtiens aucune intelligence, ni aucune sorte de coloration de code.

Un indice sur la façon de résoudre ce problème? Merci d'avance.

Cristian Merighi
la source
1
Essayez de démarrer un nouveau projet Web à l'aide du modèle Web par défaut. Si cela fonctionne, le problème est lié à votre projet. Au moins, il est plus facile de le réduire.
Rosdi Kasim
Désolé Rosdi, j'ai dû fournir plus de détails. J'ai mis à jour le texte ci-dessus en conséquence. BTW, en gardant googler, je viens de trouver un commentaire ouvert ici connect.microsoft.com/VisualStudio/feedback/details/1579142/… qui rapporte exactement le même problème.
Cristian Merighi
Essayez ceci: stackoverflow.com/questions/17598359/… a fonctionné pour moi
Knerd
Salut Knerd, le fait est que je n'obtiens aucune intelligence (voir photo ci-dessus). Cela me semble plus un problème de studio visuel principal que des paramètres de projet incorrects (j'obtiens le même problème dans les vues de modèle par défaut d'un tout nouveau projet).
Cristian Merighi
C'est ainsi que j'ai résolu un problème très similaire dans VS 2015 RTM: stackoverflow.com/a/32308899/1551276
Vladimir Abashin

Réponses:

127

J'ai résolu ce problème en réinitialisant les données utilisateur

devenv.exe /resetuserdata

et supprimez le dossier ".vs" de mon projet.


AVERTISSEMENT: cela réinitialisera tous vos paramètres utilisateur. Essentiellement, c'est comme une réinitialisation aux paramètres d'usine. Vous perdrez tous les raccourcis clavier personnalisés, les extensions que vous avez installées, etc.

Yanos
la source
14
Je n'ai pas eu besoin de supprimer le dossier .vs pour résoudre mon problème. resetuserdata était suffisant
Phil
9
Assurez-vous simplement de l'exécuter à partir de ce dossier «C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \», spécialement si vous avez plusieurs VS installés sur votre ordinateur.
Miguel
10
Pour moi, devenv.exe /resetuserdata n'a pas résolu le problème! FYI: Je n'obtiens aucune erreur mais VS ne peint pas la syntaxe pour les vues Razor.
A-Sharabiani
7
Sachez que vous perdrez tous vos paramètres Visual Studio tels que les extensions et les informations d'identification (du compte auquel vous êtes connecté)! VS doit être fermé avant de courir devenv.exe /resetuserdata.
fabriciorissetto
9
Avant d'utiliser cette commande, sachez ce qu'elle fait. Outre les inconvénients mineurs tels que la déconnexion de Visual Studio et la réinitialisation de vos fenêtres, il a également désinstallé plusieurs extensions et Resharper. Trouver les bonnes versions à réinstaller a pris plus de temps que prévu.
Jason
162

Cela a été récurrent pour moi aussi et semble être lié aux mises à jour d'extensions, mais je n'ai pas encore pu blâmer quoi que ce soit de spécifique. Ce que j'ai pu découvrir, c'est une résolution moins intrusive.

Dans mon cas, la suppression du contenu de ce répertoire permet à l'EDI de récupérer:

%LocalAppData%\Microsoft\VisualStudio\14.0\ComponentModelCache

Edit: Je viens de tomber sur celui-ci qui pourrait être pratique aussi - Effacer le cache de composants MEF (Ouvrir la galerie VSIX)

brahnp
la source
6
ResetUserData avait fonctionné pour moi, mais le problème est revenu. Cela fonctionne et est beaucoup moins intrusif (pas besoin de restaurer toutes vos extensions).
ChadT
13
Cela a fonctionné pour moi sans exécuter devenv.exe / resetuserdata
Jaecen
4
Cela a fonctionné pour moi aussi. J'ai d'abord essayé la commande resetuserdata, mais cela ne semblait rien faire. Cela a fonctionné tout de suite!
yesman
4
Cela a fonctionné pour moi, cela s'est produit plusieurs fois, et j'ai toujours réinitialisé les données utilisateur et c'est horrible, j'utilise le gestionnaire d'extensions itinérantes pour rendre plus simple la réinstallation des extensions
ivi.hamiti
2
N'a pas résolu le problème dans VS2015 Professional. La coloration syntaxique de Razor et l'intellisense ne fonctionnent toujours pas. Aucune erreur n'est affichée.
Justin Skiles
11

FWIW, j'ai eu ce problème avec VS 2015 Enterprise sur deux machines différentes. Sur une machine, la réinitialisation des données utilisateur a fait disparaître le problème (pendant un certain temps). Sur l'autre machine, j'ai dû totalement désinstaller et réinstaller VS, et le problème a disparu pendant un certain temps. Sur les deux machines, le problème est revenu après l'installation d'une extension (une fois lors de l'installation de Web Essentials, une fois lors de l'installation de Git Diff Margin).

J'ai brûlé un dossier de support technique MSDN, et la réponse a été ... Ouais, c'est un bogue, MS le sait, et ils y travaillent.

Pas une réponse particulièrement exploitable, mais une réponse néanmoins ...

EDIT: Et au sujet du contournement du problème, j'ai rencontré le problème plusieurs fois depuis que j'ai posté cette "réponse". Plus récemment, j'ai installé une mise à jour de NuGet Package Manager, et lorsque VS a redémarré, il a commencé à avoir ce problème. J'ai couru devenv.exe /resetuserdata, mais cela n'a pas aidé; il était toujours cassé. J'ai donc essayé à nouveau (couru devenv.exe /resetuserdata) et, bada bing bada boom, le problème a disparu (pour l'instant). La morale semble être quelque chose du genre "si au début vous ne réussissez pas ..."

Bob.at.Indigo.Health
la source
Un avertissement que cela efface absolument tout serait utile. Ma configuration de panneau a disparu, ma coloration syntaxique a disparu et le problème n'est toujours pas résolu. :( Comment récupérer mes données?
Henry Ing-Simmons
8

Peut-être arrivé duo à l'avoir Resharper.
Il sera corrigé dans les versions futures mais à partir de maintenant (version 10.0.2) il est cassé. Resharper remplace l'intellisense de Visual Studio et ne fonctionnera donc pas. Ce qui explique également pourquoi exécuter le devenv.exe /ResetUserDatacorrige car il supprime Resharper.

Renvoyez manuellement la puissance intellisense à VS via le menu:
ReSharper>> Enviroment>> IntelliSense>> Remplissez ce qui suit:
entrez la description de l'image ici

Et voici à quoi devrait ressembler l'intellisense de VS:
entrez la description de l'image ici

NucS
la source
6

J'ai rencontré le même problème, mais la cause était différente des autres réponses.

Une mise à jour de Visual Studio, je soupçonne la mise à jour de TypeScript en septembre 2015, a désinstallé le composant Web Developer Tools de Visual Studio 2015. Cela empêche Intellisense de fonctionner.

J'ai de nouveau installé les outils de développement Web dans les options du programme d'installation ET j'ai supprimé ComponentModelCache après l'installation. Cela a fonctionné pour moi.

Wakusei
la source
Cela a également résolu le problème pour moi. Lors d'une réparation sur VS2015 via l'ajout / la suppression de programmes, je pouvais voir que les outils de développement Web n'étaient même pas installés. Cocher la case et terminer travaillé.
Anders Jakobsen
4

Cela m'a résolu tout de suite.

Dans Visual Studio:

Cliquez sur Outils-> Options-> Éditeur de texte-> Toutes les langues-> Général Décochez "Liste automatique des membres" Décochez "Informations sur les paramètres" Cochez "Liste automatique des membres" (oui, celui que vous venez de décocher) Cochez "Informations sur les paramètres" (encore une fois, celui que vous venez de décocher) Cliquez sur OK

Craig Goldensoph
la source
Essayé de réinitialiser les données d'utilisateur, supprimer vssc, effacer le cache de composant et n'a pas fonctionné. Après avoir essayé cela et ça a marché! Merci
c0demaster
1

La /ResetUserDatasolution est votre meilleur pari, mais je pense aussi avoir découvert une cause possible à cela ...

J'utilise actuellement Umbraco pour créer des partiels de macro dans le BackOffice. Lorsque ces fichiers sont créés, je clique sur le bouton Masquer / Afficher tous les fichiers pour afficher la macro partielle dans ma solution et la mise en surbrillance de la syntaxe Razor semble cesser de fonctionner, je suppose que de nouveaux fichiers introduits dans votre solution ne sont pas créés directement via VS causer ce problème.

Même lors de l'ajout des fichiers à la solution, la mise en évidence de la syntaxe ne fonctionne pas.

ChronixPsyc
la source
Intéressant, car je vis aussi cela avec Umbraco .. Umbraco 7.4.3 et VS 2015, en particulier ..
Brian Lacy
1

Parfois, VS Ide n'affiche pas du tout Intellisense. Je ferme juste la solution. Fermez VS. Ensuite, rouvrez-le et le problème est résolu.

Thomas.Benz
la source
1

Il existe une autre solution, sans réinitialiser toutes les données utilisateur

(mais uniquement les dispositions de fenêtres / barres d'outils):

fermez toutes les instances VS2015, [sauvegardez éventuellement et] supprimez le dossier:

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

Maintenant, rouvrez VS2015: la mise en page a été réinitialisée aux préréglages d'usine, mais la syntaxe Razor fonctionnerait

T-moty
la source
1

Pour info: mon installation VS 2015 PRO a une installation complète avec toutes les tierces parties.

J'ai essayé toutes les solutions possibles qui ici dans l'article, cela ne m'a pas aidé. Ce que Craig Goldensoph a écrit m'a aidé en partie à trouver une solution pour moi.

Alors j'ai d'abord fait: décochez toutes les cases pour l'Éditeur de texte-> Toutes les langues-> Achèvement de la déclaration générale: entrez la description de l'image ici

Après avoir cliqué sur OK - Rouvrir la boîte de dialogue des options à nouveau: Et vérifiez tout pour la même section: entrez la description de l'image ici

et appliquez à nouveau les paramètres. Vous devez redémarrer votre studio visuel. Après le redémarrage, le chargement prendra un certain temps, mais après cela, cela a fonctionné pour moi.

Eugène Bosikov
la source
Problème commun. Ce que j'ai lu tout le monde avait des problèmes similaires et il était toujours résolu de manière différente. Je viens de partager ce qui m'a aidé. Désolé, ne pouvait pas être une solution pour tout le monde.
Eugene Bosikov
1

Si aucune des autres options ne fonctionne, il existe une solution de contournement. Après avoir entré le '.' l'opérateur appuie sur les touches "Ctrl + Espace" qui devraient forcer la boîte de dialogue Intellisense à apparaître.

J'avais ce problème lorsque je travaillais avec des fichiers de rasoir .cshtml MVC.

Colin
la source
0

Cela peut sembler drôle, mais juste pour faire une chose ...

Placez le point d'arrêt sur n'importe quelle ligne, puis attendez 5 secondes que cela ne fonctionne pas, puis passez à la première ligne et placez-y le point de rupture et lorsque vous mettez le point de rupture, il vous demandera les paramètres du point de rupture. entrez la description de l'image ici cliquez sur ces paramètres et fermez ces paramètres. Terminé. you intellisense fonctionne maintenant.

J'ai l'édition communautaire de VS 2015. Auparavant, j'avais VS 2015 Enterprise et c'est arrivé là-dessus, mais après avoir obtenu la communauté, j'ai trouvé que la même chose se produisait et que la même solution fonctionnait pour les deux.

J'ai trouvé cette solution par accident pendant le travail, faites-le également lorsque le projet n'est pas en cours d'exécution et vous pouvez également supprimer ce point d'arrêt.

Geai
la source
0

Vous n'avez pas besoin de tout réinitialiser, supprimez simplement tous les fichiers %LocalAppData%\Microsoft\VisualStudio\14.0\ComponentModelCacheet redémarrez VS, ça ira.

Nilesh Moradiya
la source
0

J'ai posté cette réponse sur une autre question SO, simplement parce que je veux éviter que les gens ne perdent le temps que je viens de perdre. Mon problème était que j'avais ajouté des fichiers à un projet, mais je ne les avais pas inclus. J'ai donc choisi d'afficher tous les fichiers:

entrez la description de l'image ici

puis a choisi d'inclure des dossiers:

entrez la description de l'image ici

Le problème n'apparaît que lorsque vous ouvrez un site Web MVC en tant que projet, et non lorsque vous l'ouvrez directement en tant que site Web.

Andy Brown
la source
0

Le mien était une légère douleur dans le keester mais semblait fonctionner. Dans mon cas, c'était un fichier .aspx qui ne ferait plus d'intellisense (après avoir bêtement changé le nom de fichier .aspx ... leçon apprise!)

  1. J'ai copié tout mon code des fichiers (.aspx & .cs) dans le bloc-notes par exemple.
  2. Supprimé le fichier .aspx (qui à son tour a supprimé tous les fichiers enfants).
  3. J'ai enregistré mon projet. Créé un nouveau fichier .aspx avec le même nom.
  4. Copiez / collez mon code depuis le bloc-notes.
  5. Je l'ai sauvé.
  6. Essayé à nouveau intellisense. Ça a marché!

À peu près mais pas aussi mauvais que la désinstallation / la réinstallation, ce qui est TOTALEMENT exagéré. Bonne chance à tous! Espérons que MS obtiendra cette solution une de ces années!

John Waclawski
la source