Visual Studio 2015 Broken Razor Intellisense


140

Depois de instalar e reparar minha instância do VS2015 , ainda não consigo fazer com que o intellisense (lado do servidor) funcione nas minhas visualizações do MVC. Sou alertado pelo prompt de mensagens assim que abro pela primeira vez em uma sessão um arquivo .cshtml e sou endereçado ao arquivo Activitylog. Mensagem de erro recuperada no ActivityLog.xml (versão curta):

System.ArgumentException: o item já foi adicionado. Chave no dicionário: 'RazorSupportedRuntimeVersion'

Aqui está a versão completa:

System.Reflection.TargetInvocationException: exceção foi lançada pelo destino de uma chamada. ---> System.ArgumentException: o item já foi adicionado. Chave no dicionário: 'RazorSupportedRuntimeVersion'Chave sendo adicionada: 'RazorSupportedRuntimeVersion' em System.Collections.Hashtable.Insert (chave de objeto, nvalue de objeto, adição booleana) em System.Collections.Hashtable.Add (chave de objeto, valor de objeto) em System.Collections.Specialized.HybridDictionary.Add (Chave do objeto, Valor do objeto) em Microsoft.VisualStudio.Utilities.PropertyCollection.AddProperty (Chave do objeto, propriedade Object) em Microsoft.VisualStudio.Html.Package.Razor.RazorVersionDetector.Microsoft.Html.Editor.ContainedLanguage.Razor.Def.IRazor.Defector.Razor .GetVersion (ITextBuffer textBuffer) em Microsoft.Html.Editor.ContainedLanguage.Razor.RazorUtility.TryGetRazorVersion (ITextBuffer textBuffer, Version & razorVersion) em Microsoft.Html.Editor.ContainedLanguage.Razor.Razor.Razor.Razor.Razor.Razor. de rastreamento de pilha de exceção interna --- no System.RuntimeMethodHandle.InvokeMethod (destino de objeto, argumentos Object [], Signature sig, construtor booleano) em System.Reflection.RuntimeConstructorInfo.Invoke (BindingFlags invokeAttr, fichário de encadernação, parâmetros Object [], cultura CultureInfo cultura) em System.RuntimeType.CreateInstanceImpl (BindingFlags) , Binder fichário, Object [] args, CultureInfo culture, Object [] activationAttributes, StackCrawlMark & ​​stackMark) em System.Activator.CreateInstance (Tipo de tipo, BindingFlags bindingAttr, Binder Binder, Object [] args, CultureInfo culture, Object [] activationAttributes) em System.Activator.CreateInstance (Type type, Object [] args) em Microsoft.Html.Editor.ContainedLanguage.Common.ContainedCodeErrorTaggerProvider'1.CreateTagger [T] (ITextBuffer textBuffer) em Microsoft.VisualStudio.Text.Tagging.Implementation.Agendar1.GatherTaggers (ITextBuffer textBuffer)

Se for de alguma ajuda, tenho algumas personalizações para colorir fontes e as extensões Web Essentials, Bundler & Minifier e Web Compiler instaladas.

ATUALIZAÇÃO : isso acontece quando abro um aplicativo Web existente ou quando crio um novo a partir do zero. Há também uma instância do VS2013 instalada e em execução na mesma máquina.

Nenhum intelecto

Como você pode ver na foto acima, eu não entendo muito o senso comum, nem qualquer tipo de coloração de código.

Alguma pista sobre como consertar isso? Desde já, obrigado.


1
Tente iniciar um novo projeto da web usando o modelo da web padrão. Se estiver funcionando, o problema está relacionado ao seu projeto. Pelo menos é mais fácil reduzi-lo.
Rosdi Kasim

Desculpe Rosdi, tive que fornecer mais detalhes. Eu atualizei o texto acima em conformidade. BTW, continuando pesquisando, encontrei um feedback aberto aqui connect.microsoft.com/VisualStudio/feedback/details/1579142/…, que relata exatamente o mesmo problema.
Cristian Merighi

Tente isto: stackoverflow.com/questions/17598359/... funcionou para mim
Knerd

Oi Knerd, o fato é que eu não entendo nada de inteligência (veja a foto acima). Parece-me mais um problema central do visual studio do que algumas configurações incorretas do projeto (eu recebo o mesmo problema nas visualizações de modelo padrão de um novo projeto).
Cristian Merighi

Isto é como eu fixo uma questão muito semelhante no VS 2015 RTM: stackoverflow.com/a/32308899/1551276
Vladimir Abashin

Respostas:


127

Resolvi esse problema redefinindo os dados do usuário

devenv.exe /resetuserdata

e remova a pasta ".vs" no meu projeto.


AVISO: isso redefinirá todas as suas configurações de usuário. Essencialmente, é como redefinir os padrões de fábrica. Você perderá atalhos de teclado personalizados, extensões instaladas etc.


14
Não precisei remover a pasta .vs para corrigir esse problema. resetuserdata foi suficiente
Phil

9
Apenas certifique-se de executá-lo nesta pasta "C: \ Arquivos de Programas (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \", especialmente se você tiver mais de um VS instalado no seu computador.
Miguel

10
Para mim devenv.exe /resetuserdata não resolveu o problema! FYI: Não recebo nenhum erro, mas o VS não pinta a sintaxe para as visualizações do Razor.
A-Sharabiani

7
Esteja ciente de que você perderá todas as suas configurações do Visual Studio, como extensões e credenciais (da conta em que você está conectado)! O VS deve estar fechado antes da execução devenv.exe /resetuserdata.
Fabriciorissetto #

9
Antes de usar este comando, saiba o que ele faz. Além de pequenos inconvenientes, como sair do Visual Studio e redefinir o Windows, ele também desinstalou várias extensões e o Resharper. Encontrar as versões corretas para reinstalar levou mais tempo do que eu esperava.
Jason

162

Isso também tem sido recorrente para mim e parece estar conectado a atualizações de extensão, mas ainda não pude culpar nada específico. O que eu pude descobrir é uma resolução menos invasiva.

No meu caso, excluir o conteúdo desse diretório permite que o IDE se recupere:

%LocalAppData%\Microsoft\VisualStudio\14.0\ComponentModelCache

Edit: Acabei de encontrar este que também pode ser útil - Limpar cache de componentes do MEF (Open VSIX Gallery)


6
ResetUserData funcionou para mim, mas o problema retornou. Isso funciona e é muito menos invasivo (não é necessário restaurar todas as suas extensões).
ChadT 10/09

13
Isso funcionou para mim , sem correr devenv.exe / resetuserdata
Jaecen

4
Isso funcionou para mim também. Tentei primeiro o comando resetuserdata, mas isso não pareceu fazer nada. Isso funcionou imediatamente!
yesman 28/09/15

4
Ela trabalhou para mim, isso aconteceu várias vezes, e eu sempre reseted os dados do usuário e é horrível, eu uso o Extension Manager Roaming para torná-lo mais simples para reinstalar as extensões
ivi.hamiti

2
Não foi corrigido o problema no VS2015 Professional. O realce da sintaxe do razor e o intellisense ainda não funcionam. Nenhum erro é exibido.
Justin Skiles

11

FWIW, tive esse problema com o VS 2015 Enterprise em duas máquinas diferentes. Em uma máquina, a redefinição dos dados do usuário fazia com que o problema desaparecesse (por um tempo). Na outra máquina, tive que desinstalar e reinstalar totalmente o VS, e o problema desapareceu por um tempo. Nas duas máquinas, o problema voltou depois que eu instalei uma extensão (uma vez ao instalar o Web Essentials, uma vez ao instalar o Git Diff Margin).

Eu queimei um caso de suporte técnico do MSDN, e a resposta foi ... Sim, é um bug, a Microsoft sabe disso e eles estão trabalhando nisso.

Não é uma resposta particularmente acionável, mas mesmo assim uma resposta ...

Edição: E sobre o assunto de solucionar o problema, eu encontrei o problema mais algumas vezes desde que publiquei esta "resposta". Mais recentemente, instalei uma atualização no NuGet Package Manager e, quando o VS foi reiniciado, ele começou a ter esse problema. Eu corri devenv.exe /resetuserdata, mas isso não ajudou; ainda estava quebrado. Então tentei novamente (corri devenv.exe /resetuserdata) e, bada bing bada boom, o problema desapareceu (por enquanto). A moral parece ser algo parecido com "se a princípio você não tiver sucesso ..."


Algum aviso de que isso limpa absolutamente tudo seria útil. A configuração do meu painel acabou, o realce da sintaxe desapareceu e o problema ainda não foi resolvido. :( Como obtenho meus dados de volta?
Henry Ing-Simmons

8

Pode ter acontecido duas vezes Resharper.
Ele será corrigido em versões futuras, mas a partir de agora (versão 10.0.2) está quebrado. O compartilhador substitui o intellisense do Visual Studio e, portanto, não funcionará. O que também explica por que a execução o devenv.exe /ResetUserDatacorrige desde que é removida Resharper.

Retorne manualmente o poder do intellisense para VS através do menu:
ReSharper>> Enviroment>> IntelliSense>> Preencha o seguinte:
insira a descrição da imagem aqui

E é assim que o intellisense do VS deve ficar:
insira a descrição da imagem aqui


6

Eu encontrei o mesmo problema, mas a causa foi diferente das outras respostas.

Uma atualização do Visual Studio, suspeito que a atualização do TypeScript em setembro de 2015, desinstalou o componente Web Developer Tools do Visual Studio 2015. Isso faz com que o Intellisense não funcione.

Instalei novamente o Web Developer Tools nas opções do instalador E excluí o ComponentModelCache após a instalação. Isso funcionou para mim.


Isso resolveu o problema para mim também. Ao fazer um reparo no VS2015 por meio de adicionar / remover programas, pude ver que as Ferramentas para Desenvolvedor da Web nem estavam instaladas. Marcar a caixa e concluir o trabalho.
Anders Jakobsen

4

Isso corrigiu para mim imediatamente.

No Visual Studio:

Clique em Ferramentas-> Opções-> Editor de texto-> Todos os idiomas-> Geral Desmarque "Lista automática de membros" Desmarque "Informações sobre parâmetros" Marque "Lista automática de membros" (sim, você acabou de desmarcar) Verifique "Informações sobre parâmetros" (novamente, aquele que você acabou de desmarcar) Clique em OK


Tentei resetuserdata, excluir vssc, limpar componentcache e não funcionou. Depois que eu tentei isso e deu certo! Obrigado
c0demaster


1

o /ResetUserData solução é sua melhor aposta, mas também acho que descobri uma possível causa disso ...

Atualmente, estou usando a Umbraco para criar macro parciais no BackOffice. Quando esses arquivos são criados, clico no botão Ocultar / Mostrar todos os arquivos para mostrar a Macro Parcial em minha solução e o Razor Syntax Highlighting parece parar de funcionar, portanto, acho que são novos arquivos introduzidos em sua solução que não são criados diretamente pelo VS causar esse problema.

Mesmo ao adicionar os arquivos à solução, o Syntax Highlighting não funciona.


Interessante, como eu estou enfrentando isso com Umbraco bem .. Umbraco 7.4.3 e VS 2015, especificamente ..
Brian Lacy

1

Às vezes, o VS Ide não mostra o Intellisense. Eu apenas fecho a solução. Feche o VS. Em seguida, reabra-o e o problema está resolvido.


1

Existe outra solução, sem redefinir todos os dados do usuário

(mas apenas layouts de janelas / barras de ferramentas):

feche todas as instâncias do VS2015, [eventualmente faça backup e] exclua a pasta:

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

Agora, abra novamente o VS2015: o layout foi redefinido para a predefinição de fábrica, mas a sintaxe do Razor funcionaria


1

FYI: Minha instalação do VS 2015 PRO tem instalação completa com todos os terceiros.

Eu tentei todas as soluções possíveis que aqui no artigo, isso não me ajudou. O que Craig Goldensoph escreveu me ajudou parcialmente a encontrar uma solução para mim.

Então, primeiro fiz: Desmarque todas as caixas de seleção do Editor de texto-> Todos os idiomas-> Conclusão da declaração geral: insira a descrição da imagem aqui

Depois clique em OK - reabrir a caixa de diálogo de opção novamente: e verifique tudo na mesma seção: insira a descrição da imagem aqui

e aplique as configurações novamente. Você precisa reiniciar o seu Visual studio. Depois de reiniciar, levará um tempo para carregar, mas depois funcionou para mim.


Problema comum. O que eu li todos teve problemas semelhantes e sempre foi corrigido de maneira diferente. Acabei de compartilhar o que me ajudou. Desculpe, não poderia ser solução para todos.
Eugene Bosikov

1

Se nenhuma das outras opções funcionar, há uma solução alternativa. Depois de entrar no '.' operador, pressione as teclas "Ctrl + Space", que devem forçar a exibição do diálogo Intellisense.

Eu estava tendo esse problema ao trabalhar com arquivos razor .cshtml MVC.


0

Isso pode parecer engraçado, mas apenas para fazer uma coisa ..

Coloque o ponto de interrupção em qualquer linha e aguarde 5 segundos para que não funcione; em seguida, vá para a primeira linha e coloque o ponto de interrupção lá e, ao colocar o ponto de interrupção, ele solicitará as configurações do ponto de interrupção. insira a descrição da imagem aqui clique nessas configurações e feche-as. Feito. seu intellisense agora está funcionando.

Eu tenho o VS 2015 Community edition. Anteriormente tinha o VS 2015 Enterprise e isso aconteceu, mas depois de obter a comunidade, descobri que o mesmo acontece e a mesma solução funciona para ambos.

Encontrei essa solução acidentalmente durante o trabalho. Também faça isso quando o projeto não estiver em execução. E você poderá remover esse ponto de interrupção também.


0

Você não precisa redefinir tudo, basta remover todos os arquivos %LocalAppData%\Microsoft\VisualStudio\14.0\ComponentModelCachee reiniciar o VS, tudo ficará bem.


0

Publiquei esta resposta em outra pergunta do SO, apenas porque quero evitar que as pessoas percam o tempo que acabei de perder. Meu problema era que eu adicionei arquivos a um projeto, mas não os incluí. Então eu escolhi mostrar todos os arquivos:

insira a descrição da imagem aqui

então optou por incluir pastas:

insira a descrição da imagem aqui

O problema só aparece quando você abre um site MVC como um projeto, e não quando você o abre diretamente como um site.



0

A minha estava com uma leve dor no keester, mas parecia funcionar. No meu caso, era um arquivo .aspx que não daria mais inteligência (depois que eu mudei estupidamente o nome do arquivo .aspx ... lição aprendida!)

  1. Copiei todo o meu código dos arquivos (.aspx e .cs) para o bloco de notas, por exemplo.
  2. Excluiu o arquivo .aspx (que por sua vez excluiu todos os arquivos filho).
  3. Salvei meu projeto. Criou um novo arquivo .aspx com o mesmo nome.
  4. Copie / cole meu código do bloco de notas.
  5. Salvei.
  6. Tentei intellisense novamente. Funcionou!

Rode o caminho, mas não é tão ruim quanto desinstalar / vs reinstalar, o que é um exagero TOTAL. Boa sorte a todos! Esperemos que a MS consiga consertar esse um desses anos!

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.