web-dev-qa-db-fra.com

Visual Studio 2015 Razor Cassé Intellisense

Après avoir installé puis réparé mon instance VS2015 , je ne parviens toujours pas à utiliser intellisense (côté serveur) dans mes vues MVC. Je suis alerté par un message Invite dès que j'ouvre pour la première fois dans une session un fichier . Cshtml et que 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é du 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é du dictionnaire: 'RazorSupportedRuntimeVersion' Clé ajoutée: 'RazorSupportedRuntimeVersion' sur System.Collections.Hashtable.Insert (Clé de l'objet, Valeur de l'objet, Ajout booléen) sur System.Collections.Hashtable.Hashtable.Add ( Clé d'objet, valeur d'objet) dans System.Collections.Specialized.HybridDictionary.Add (clé d'objet, valeur d'objet) dans Microsoft.VisualStudio.Utilities.PropertyCollection.AddProperty (clé d'objet, propriété d'objet) dans Microsoft.VisualStudio.Html.Package.Razor .RazorVersionDetector.Microsoft.Html.Editor.ContainedL ..Razor.Def. ContainedLanguage.Razor.RazorErrorTagger..ctor (ITextBuffer textBuffer) --- Fin de la trace de la pile des exceptions internes --- dans System.RuntimeMethodHandle.InvokeMethod (Object, arguments, argument [], signature, constructeur Boolean) dans System.Reflection. RuntimeConstructorInfo.Invoke (BindingFlags invokeAttr, classeur Binder, paramètres Object [], culture CultureInfo) à System.RuntimeType.CreateInstanceImpl (BindingFlags bindingAttr, classeur Binder, Object [] arguments, culture CultureInfo, Object [] activationAttroag, Activator.CreateInstance (Type, BindingFlags bindingAttr, classeur Binder, Object [] args, CultureInfo, Object [] activationAttributes) à System.Activator.CreateInstance (Type, Object [] args) à Microsoft.Html.Editor.ContainedLanguage. Common.ContainedCodeErrorTaggerProvider'1.CreateTagger [T] (textBuffer ITextBuffer) à Microsoft.VisualStudio.Text.Tagging.Implementation.TagAggregator'1.GatherTaggers (textBuffer ITextBuffer)

Si vous avez besoin d’aide, j’ai quelques personnalisations pour la coloration des polices et les extensions Web Essentials, Bundler & Minifier et Web Compiler sont installées.

UPDATE: cela se produit lorsque j'ouvre une application Web existante ou lorsque j'en crée une nouvelle à partir de zéro. Il existe également une instance de VS2013 installée et exécutée sur le même ordinateur.

No intellisense at all

Comme vous pouvez le voir sur la photo ci-dessus, je n’obtiens pas d’intellisense, ni de code de coloration.

Une idée sur la façon de résoudre ce problème? Merci d'avance.

140
Cristian Merighi

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

devenv.exe /resetuserdata

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


ATTENTION: cela réinitialisera tous vos paramètres utilisateur. Cela revient essentiellement à rétablir les paramètres d'usine par défaut. Vous perdrez tous les raccourcis clavier personnalisés, les extensions que vous avez installées, etc.

127
Yanos

Cela a été récurrent pour moi aussi et semble être lié aux mises à jour d'extension, mais je n'ai encore été en mesure de blâmer rien 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 à la IDE de récupérer:

%LocalAppData%\Microsoft\VisualStudio\14.0\ComponentModelCache

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

162
brahnp

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 résolu le problème (pendant un certain temps). Sur l’autre ordinateur, j’ai dû désinstaller et réinstaller totalement VS, et le problème a disparu pendant un moment. Sur les deux machines, le problème est survenu 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 gravé un cas de support technique MSDN, et la réponse a été… Oui, c'est un bogue, MS le sait et il y travaille.

Pas une réponse particulièrement exploitable, mais une réponse quand même ...

EDIT: Et en ce qui concerne le problème, j’ai rencontré le problème plusieurs fois de plus 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é, le problème a commencé. J'ai exécuté devenv.exe /resetuserdata, mais cela n'a pas aidé; c'était encore cassé. Alors j'ai essayé à nouveau (couru devenv.exe /resetuserdata) et, bada bing bada boum, le problème a disparu (pour le moment). La morale semble être du genre "si au début vous ne réussissez pas ..."

11

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

Rendez manuellement le pouvoir intellisense au VS via le menu:
ReSharper >> Enviroment >> IntelliSense >> Remplissez les champs suivants:
enter image description here

Et voici à quoi devrait ressembler l'intellisense de VS:
enter image description here

8
NucS

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

Je soupçonne qu'une mise à jour de Visual Studio, mise à jour TypeScript de septembre 2015, a désinstallé le composant Outils de développement Web de Visual Studio 2015. Cela empêche Intellisense de fonctionner.

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

6
Wakusei

Pour ajouter mes 2 centimes. Aucune des solutions précédentes ne fonctionnait pour moi, alors j'ai trouvé ce lien:

http://www.c-sharpcorner.com/blogs/how-to-resolve-intellisense-issue-in-visual-studio1

En particulier celui-ci

Solution 4:

Ensuite, réinitialisez les paramètres à l’emplacement suivant.

Outils-> Importer et exporter des paramètres-> Réinitialiser tous les paramètres.

À partir de là, je choisis Visual C #

4
AlexanderD

Cela a réglé le problème pour moi tout de suite.

Dans Visual Studio:

Cliquez sur Outils-> Options-> Editeur de texte-> Toutes les langues-> Général Décochez "Membres de la liste automatique" Décochez "Informations du paramètre" Cochez "Membres de la liste automatique" (oui, celui que vous venez de décocher) Cochez "Informations du paramètre" (à nouveau, celui que vous venez de décocher) Cliquez sur OK

4
Craig Goldensoph

FYI: 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 partiellement aidé à trouver une solution.

Donc tout d’abord, j’ai fait: Décocher toutes les cases pour l’éditeur de texte-> Toutes les langues-> Complétion de la déclaration générale: enter image description here

Après cliquez à nouveau sur OK - La boîte de dialogue des options de réouverture: Et recherchez toutes la même section: enter image description here

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

1
Eugene Bosikov

Parfois, le VS Ide ne montre pas du tout Intellisense. Je viens de fermer la solution. Fermer VS. Puis rouvrez-le et le problème est résolu.

1
Thomas.Benz

Si aucune des autres options ne fonctionne, il existe une solution de contournement. Après l'entrée dans le '.' appuyez sur les touches "Ctrl + Espace" ce qui devrait forcer le dialogue Intellisense à apparaître.

J'avais ce problème lorsque je travaillais avec les fichiers .cshtml MVC razor.

1
Versatile

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

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

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

1
ChronixPsyc

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 de VS2015, [éventuellement sauvegardé 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 paramètres d'usine, mais la syntaxe Razor fonctionnerait

1
T-moty

Vous n'avez pas besoin de tout réinitialiser, il vous suffit de supprimer tous les fichiers de %LocalAppData%\Microsoft\VisualStudio\14.0\ComponentModelCache et de redémarrer VS.

0
Nilesh Moradiya

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 pour que cela ne fonctionne pas, puis passez à la première ligne et définissez le point d'arrêt. enter image description here cliquez sur ces paramètres et fermez-les. Terminé. vous intellisense travaille maintenant.

J'avais VS 2015 Community Edition. J'avais auparavant VS 2015 Enterprise et c'est ce qui s'est passé, mais après avoir obtenu la communauté, j'ai constaté qu'il en était de même et que la même solution fonctionnait pour les deux.

J'ai trouvé cette solution accidentellement pendant le travail. Faites-le également lorsque le projet n'est pas en cours d'exécution. Vous pouvez également supprimer ce point de rupture.

0
Jay

Je n'ai pu résoudre ce problème qu'en mettant à jour la version des pages Web, que j'ai mentionnée dans une autre question similaire:

Razor intellisense ne fonctionne pas dans VS 2015

0
Tony Anderson

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 intellisense (après avoir bêtement changé le nom de fichier .aspx ... leçon apprise!)

  1. J'ai copié tout mon code hors des fichiers (.aspx & .cs) dans le bloc-notes par exemple.
  2. Supprimez le fichier .aspx (qui à son tour supprimait tous les fichiers enfants).
  3. Enregistré mon projet. Création d'un nouveau fichier .aspx du même nom.
  4. Copier/coller mon code depuis le bloc-notes.
  5. Sauvé.
  6. Essayé intellisense à nouveau. Ça a marché!

Autour, mais pas aussi grave que la désinstallation de/vs, ce qui est TOTALEMENT excessif. Bonne chance à tous! Espérons que MS obtiendra ce problème une de ces années!

0
John Waclawski

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

enter image description here

puis choisi d'inclure des dossiers:

enter image description here

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.

0
Andy Brown