Visual Studio 2015 Broken Razor Intellisense


140

Después de instalar y luego reparar mi instancia VS2015 , todavía no puedo hacer que intellisense (lado del servidor) funcione en mis vistas MVC. Recibo un mensaje de alerta cuando abro por primera vez en una sesión un archivo .cshtml y me dirijo al archivo Activitylog. Mensaje de error recuperado en ActivityLog.xml (versión corta):

System.ArgumentException: el elemento ya se ha agregado. Clave en el diccionario: 'RazorSupportedRuntimeVersion'

Aquí está la versión completa:

System.Reflection.TargetInvocationException: el destino de una invocación ha lanzado una excepción. ---> System.ArgumentException: el elemento ya se ha agregado. Clave en el diccionario: 'RazorSupportedRuntimeVersion'Clave que se agrega: 'RazorSupportedRuntimeVersion' en System.Collections.Hashtable.Insert (clave de objeto, Object nvalue, Boolean add) en System.Collections.Hashtable.Add (clave de objeto, valor de objeto) en System.Collections.Specialized.HybridDictionary.Add (Clave de objeto, Valor de objeto) en Microsoft.VisualStudio.Utilities.PropertyCollection.AddProperty (Clave de objeto, Propiedad de objeto) en Microsoft.VisualStudio.Html.Package.Razor.RazorVersionDetector.Microsoft.Html.Editor.ContainedLanguage.Raz.orateor.Vazor.DeArz.DeArz .GetVersion (ITextBuffer textBuffer) en Microsoft.Html.Editor.ContainedLanguage.Razor.RazorUtility. TryGetRazorVersion (ITextBuffer textBuffer, Version & razorVersion) en Microsoft.Html.Editor.Conta. de seguimiento de pila de excepción interna --- en el sistema.RuntimeMethodHandle.InvokeMethod (Objetivo del objeto, argumentos del Objeto [], Firma de firma, Constructor booleano) en System.Reflection.RuntimeConstructorInfo.Invoke (BindingFlags invokeAttr, Binder Binder, Object [] parámetros, CultureInfo culture) en System.RuntimeType.CreateIindingtmplla , Binder Binder, Object [] args, CultureInfo culture, Object [] activaciónAttributes, StackCrawlMark & ​​stackMark) en System.Activator.CreateInstance (Tipo de tipo, BindingFlags bindingAttr, Binder Binder, Object [] args, CultureInfo culture, Object [] activaciónAttributes) en System.Activator.CreateInstance (Type type, Object [] args) en Microsoft.Html.Editor.ContainedLanguage.Common.ContainedCodeErrorTaggerProvider'1.CreateTagger [T] (ITextBuffer textBuffer) en Microsoft.VisualStudio.Text.Tagging.Igual.Tag.Tagging.1.GatherTaggers (ITextBuffer textBuffer)

Si es de ayuda, tengo algunas personalizaciones para colorear fuentes y tengo instaladas las extensiones Web Essentials, Bundler & Minifier y Web Compiler.

ACTUALIZACIÓN : sucede cuando abro una aplicación web existente o cuando creo una nueva desde cero. También hay una instancia de VS2013 instalada y ejecutándose en la misma máquina.

Sin inteligencia en absoluto

Como puede ver en la imagen de arriba, no obtengo ningún intellisense, ni ningún tipo de código para colorear.

¿Alguna pista sobre cómo solucionarlo? Gracias por adelantado.


1
Intente iniciar un nuevo proyecto web utilizando la plantilla web predeterminada. Si está funcionando, el problema está relacionado con su proyecto. Al menos es más fácil reducirlo.
Rosdi Kasim

Lo siento, Rosdi, tuve que proporcionar más detalles. Actualicé el texto anterior en consecuencia. Por cierto, buscando en Google acabo de encontrar un comentario abierto aquí connect.microsoft.com/VisualStudio/feedback/details/1579142/… que informa exactamente mi mismo problema.
Cristian Merighi

Pruebe esto: stackoverflow.com/questions/17598359/… funcionó para mí
Knerd

Hola Knerd, el hecho es que no tengo inteligencia en absoluto (ver foto arriba) Me parece más un problema central de estudio visual que algunas configuraciones de proyecto incorrectas (obtengo el mismo problema en las vistas de plantilla predeterminadas de un proyecto nuevo).
Cristian Merighi

Así es como solucioné un problema muy similar en VS 2015 RTM: stackoverflow.com/a/32308899/1551276
Vladimir Abashin

Respuestas:


127

Resolví este problema restableciendo los datos del usuario

devenv.exe /resetuserdata

y elimine la carpeta ".vs" en mi proyecto.


ADVERTENCIA: esto restablecerá todas las configuraciones de usuario. Esencialmente, es como restablecer los valores predeterminados de fábrica. Perderá cualquier atajo de teclado personalizado, extensiones que haya instalado, etc.


14
No necesitaba eliminar la carpeta .vs para solucionar este problema. resetuserdata fue suficiente
Phil

9
Solo asegúrese de ejecutarlo desde esta carpeta "C: \ Archivos de programa (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \" especialmente si tiene más de un VS instalado en su computadora.
Miguel

10
Para mí devenv.exe /resetuserdata no solucionó el problema! FYI: No recibo ningún error, pero VS no pinta la sintaxis para las vistas de Razor.
A-Sharabiani

77
¡Tenga en cuenta que perderá toda la configuración de Visual Studio, como extensiones y credenciales (de la cuenta en la que ha iniciado sesión)! VS debe estar cerrado antes de correr devenv.exe /resetuserdata.
fabriciorissetto

9
Antes de usar este comando, sepa lo que hace. Además de inconvenientes menores, como cerrar sesión en Visual Studio y restablecer sus ventanas, también desinstaló varias extensiones y Resharper. Encontrar las versiones correctas para reinstalar tomó más tiempo de lo esperado.
Jason

162

Esto también ha sido recurrente para mí y parece estar conectado a actualizaciones de extensión, pero aún no he podido culpar a nada específico. Lo que he podido descubrir es una resolución menos intrusiva.

En mi caso, eliminar el contenido de este directorio permite que el IDE se recupere:

%LocalAppData%\Microsoft\VisualStudio\14.0\ComponentModelCache

Editar: acabo de encontrar este que también podría ser útil: borrar caché de componentes MEF (abrir la galería VSIX)


66
ResetUserData había funcionado para mí, pero el problema volvió. Esto funciona y es mucho menos intrusivo (no es necesario restaurar todas sus extensiones).
ChadT

13
Esto funcionó para mí sin ejecutar devenv.exe / resetuserdata
Jaecen

44
Esto funcionó para mí también. Primero probé el comando resetuserdata, pero eso no pareció hacer nada. Esto funcionó de inmediato!
yesman

44
Funcionó para mí, sucedió varias veces, y siempre reseteé los datos del usuario y es horrible, uso el Administrador de extensiones
móviles

2
No solucionó el problema en VS2015 Professional. El resaltado de sintaxis de Razor y el intellisense todavía no funcionan. No se muestran errores.
Justin Skiles

11

FWIW, tuve este problema con VS 2015 Enterprise en dos máquinas diferentes. En una máquina, restablecer los datos del usuario hizo que el problema desapareciera (por un tiempo). En la otra máquina, tuve que desinstalar y reinstalar totalmente VS, y el problema desapareció por un tiempo. En ambas máquinas, el problema volvió después de que instalé una extensión (una vez al instalar Web Essentials, una vez al instalar Git Diff Margin).

Quemé un caso de soporte técnico de MSDN, y la respuesta fue ... Sí, es un error, MS lo sabe y están trabajando en ello.

No es una respuesta particularmente accionable, pero una respuesta, no obstante ...

EDITAR: Y sobre el tema de solucionar el problema, me he encontrado con el problema varias veces más desde que publiqué esta "respuesta". Más recientemente, instalé una actualización de NuGet Package Manager, y cuando VS se reinició, comenzó a tener este problema. Corrí devenv.exe /resetuserdata, pero eso no ayudó; Todavía estaba roto. Así que intenté nuevamente (corrí devenv.exe /resetuserdata) y, por ahora, el problema desapareció (por ahora). La moraleja parece ser algo así como "si al principio no tienes éxito ..."


Alguna advertencia de que esto borra absolutamente todo sería útil. La configuración de mi panel desapareció, mi resaltado de sintaxis desapareció y el problema aún no se solucionó. :( ¿Cómo recupero mis datos?
Henry Ing-Simmons

8

Podría haber pasado duo a tener Resharper.
Se solucionará en futuras versiones, pero a partir de ahora (versión 10.0.2) está roto. Resharper anula el intellisense de Visual Studio y, por lo tanto, no funcionará. Lo que también explica por qué la ejecución lo devenv.exe /ResetUserDatacorrige ya que elimina Resharper.

Regrese manualmente el poder de inteligencia a VS a través del menú:
ReSharper>> Enviroment>> IntelliSense>> Complete lo siguiente:
ingrese la descripción de la imagen aquí

Y así es como debería verse el intellisense de VS:
ingrese la descripción de la imagen aquí


6

Encontré el mismo problema, pero la causa era diferente de las otras respuestas.

Una actualización de Visual Studio, sospecho que la actualización de TypeScript en septiembre de 2015, desinstaló el componente Herramientas para desarrolladores web de Visual Studio 2015. Eso hace que Intellisense no funcione.

Instalé Web Developer Tools en las opciones del instalador nuevamente Y eliminé ComponentModelCache después de la instalación. Eso funcionó para mí.


Esto resolvió el problema para mí también. Al hacer una reparación en VS2015 a través de programas de agregar / quitar, pude ver que las Herramientas para desarrolladores web ni siquiera estaban instaladas. Marcando la casilla y completando trabajado.
Anders Jakobsen

4

Esto me lo arregló de inmediato.

En Visual Studio:

Haga clic en Herramientas-> Opciones-> Editor de texto-> Todos los idiomas-> General Desmarque "Miembros de la lista automática" Desmarque "Información del parámetro" Marque "Miembros de la lista automática" (sí, el que acaba de desmarcar) Marque "Información del parámetro" (nuevamente, el que acaba de desmarcar) Haga clic en Aceptar


Intenté resetuserdata, eliminé vssc, borré el caché de componentes y no funcionó. ¡Después de que intenté esto y funcionó! Gracias
c0demaster


1

La /ResetUserDatasolución es su mejor opción, pero también creo que he descubierto una posible causa de esto ...

Actualmente estoy usando Umbraco para crear Macro Partials en BackOffice. Cuando se crean estos archivos, hago clic en el botón Ocultar / Mostrar todos los archivos para mostrar el Macro Parcial en mi solución y el Resaltado de sintaxis Razor parece dejar de funcionar, así que supongo que se introducen nuevos archivos en su solución que no se crean directamente a través de VS causar este problema

Incluso al agregar los archivos a la solución, el resaltado de sintaxis no funciona.


Interesante, ya que también estoy experimentando esto con Umbraco ... Umbraco 7.4.3 y VS 2015, específicamente ...
Brian Lacy

1

A veces, el VS Ide no muestra Intellisense en absoluto. Acabo de cerrar la solución. Cerrar VS. Luego vuelva a abrirlo y el problema está resuelto.


1

Hay otra solución, sin restablecer todos los datos del usuario

(pero solo diseños de ventanas / barras de herramientas):

cierre todas las instancias de VS2015, [eventualmente haga una copia de seguridad y] elimine la carpeta:

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

Ahora, vuelva a abrir VS2015: el diseño se restableció a los valores predeterminados de fábrica, pero la sintaxis de Razor funcionaría


1

FYI: Mi instalación VS 2015 PRO tiene instalación completa con todos los terceros.

Intenté todas las soluciones posibles que aquí en el artículo, no me ayudaron. Lo que escribió Craig Goldensoph me ayudó en parte a encontrar una solución para mí.

Así que primero lo hice: desmarqué todas las casillas de verificación del Editor de texto-> Todos los idiomas-> Finalización de la declaración general: ingrese la descripción de la imagen aquí

Después de hacer clic en Aceptar, vuelva a abrir el cuadro de diálogo de opción: y verifique todo para la misma sección: ingrese la descripción de la imagen aquí

y aplique la configuración nuevamente. Tienes que reiniciar tu estudio visual. Después de reiniciar, tardará un tiempo en cargarse, pero después de eso funcionó para mí.


Problema comun. Lo que leí todos tenía problemas similares y siempre se solucionó de manera diferente. Acabo de compartir lo que me ayudó. Lo sentimos, no podría ser una solución para todos.
Eugene Bosikov

1

Si ninguna de las otras opciones funciona, hay una solución alternativa. Después de ingresar el '.' El operador presiona las teclas "Ctrl + Espacio" que deberían forzar la aparición del cuadro de diálogo Intellisense

Estaba teniendo este problema cuando trabajaba con archivos de afeitar MVC .cshtml.


0

Esto puede sonar gracioso pero solo para hacer una cosa ...

Ponga el punto de interrupción en cualquier línea y luego espere 5 segundos de eso no funciona, luego vaya a la primera línea y coloque el punto de interrupción allí y cuando coloque el punto de interrupción le pedirá la configuración del punto de interrupción. ingrese la descripción de la imagen aquí haga clic en esa configuración y cierre esa configuración. Hecho. tu intellisense ahora está funcionando.

Tengo VS 2015 Community Edition. Anteriormente tenía VS 2015 Enterprise y sucedió en eso, pero después de obtener la comunidad descubrí que sucede lo mismo y que la misma solución funciona para ambos.

Encontré esa solución accidentalmente durante el trabajo. También haga eso cuando el proyecto no se esté ejecutando. Y también puede eliminar ese punto de interrupción.


0

No necesita restablecer todo, simplemente elimine todos los archivos %LocalAppData%\Microsoft\VisualStudio\14.0\ComponentModelCachey reinicie VS, estará bien.


0

He publicado esta respuesta en otra pregunta SO, solo porque quiero evitar que las personas pierdan el tiempo que acabo de perder. Mi problema fue que agregué archivos a un proyecto, pero no los incluí. Así que elegí mostrar todos los archivos:

ingrese la descripción de la imagen aquí

luego eligió incluir carpetas:

ingrese la descripción de la imagen aquí

El problema solo aparece cuando abre un sitio web de MVC como proyecto, y no cuando lo abre como un sitio web directamente.



0

El mío fue un ligero dolor en el Keester pero parecía funcionar. En mi caso, era un archivo .aspx que ya no haría intellisense (después de cambiar estúpidamente el nombre de archivo .aspx ... ¡lección aprendida!)

  1. Copié todo mi código de los archivos (.aspx y .cs) en el bloc de notas, por ejemplo.
  2. Eliminó el archivo .aspx (que a su vez eliminó todos los archivos secundarios).
  3. Salvé mi proyecto. Creó un nuevo archivo .aspx con el mismo nombre.
  4. Copié / pegué mi código del bloc de notas.
  5. Lo guardé
  6. Intenté intellisense de nuevo. ¡Funcionó!

Redondear pero no tan malo como desinstalar / vs reinstalar, lo cual es TOTALMENTE excesivo. ¡Buena suerte a todos! ¡Esperemos que MS lo arregle uno de estos años!

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.