Visual Studio 2015破碎的剃刀智能感知


140

在安装并修复VS2015实例后,我仍然无法在我的MVC视图中使用智能感知(服务器端)。第一次在会话中打开.cshtml文件并发送到Activitylog文件时,我会通过消息提示收到警报。在ActivityLog.xml(简短版本)中检索到的错误消息:

System.ArgumentException:已添加项目。输入字典:'RazorSupportedRuntimeVersion'

这是完整版本:

System.Reflection.TargetInvocationException:调用的目标引发了异常。---> System.ArgumentException:已添加项目。输入字典:'RazorSupportedRuntimeVersion'要添加的键:在System.Collections.Hashtable.Insert(对象键,对象nvalue,布尔值添加)在System.Collections.Hashtable.Add(对象键,对象值)在System.Collections.Specialized.HybridDictionary.Add处添加“ RazorSupportedRuntimeVersion” Microsoft.VisualStudio.Utilities.PropertyCollection.AddProperty(对象键,对象属性)上的(对象键,对象值) Microsoft.Html.Editor.ContainedLanguage.Razor.RazorErrorTagger..ctor(ITextBuffer End。内部异常堆栈跟踪---在System。System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr,Binder活页夹,Object []参数,CultureInfo文化)在System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr)处运行(RuntimeMethodHandle.InvokeMethod ,活页夹活页夹,Object [] args,CultureInfo文化,System.Activator.CreateInstance(类型类型,BindingFlags bindingAttr,活页夹活页夹,Object [] args,CultureInfo文化,Object [] ActivationAttributes)处的Object [] activationAttributes,StackCrawlMark&stackMark) Microsoft.Html.Editor.ContainedLanguage.Common.ContainedCodeErrorTaggerProvider中的System.Activator.CreateInstance(类型,Object []参数),Microsoft.VisualStudio.Text.Tagging.Implementation.TagAggregator中的1.CreateTagger [T](ITextBuffer textBuffer)1.GatherTaggers(ITextBuffer textBuffer)

如果有帮助,我可以对字体进行一些自定义设置,并安装Web Essentials,Bundler&Minifier和Web Compiler扩展。

更新:打开我现有的Web应用程序或从头开始创建一个全新的Web应用程序时都会发生。在同一台计算机上还安装并运行了一个VS2013实例。

完全没有智能

从上面的图片中可以看到,我根本没有智能感知,也没有任何代码着色。

关于如何解决它的任何线索?提前致谢。


1
尝试使用默认的Web模板启动一个新的Web项目。如果工作正常,则问题与您的项目有关。至少更容易缩小范围。
Rosdi Kasim 2015年

抱歉,我需要提供更多详细信息。我相应地更新了上面的文本。顺便说一句,保持谷歌搜索功能我刚刚在这里找到了一个开放的反馈信息connect.microsoft.com/VisualStudio/feedback/details/1579142/…,其中报告了我的完全相同的问题。
克里斯蒂安·梅里吉

试试这个:stackoverflow.com/questions/17598359/…为我工作
Knerd

嗨,Knerd,事实是我根本没有智能感知能力(请参见上图)。与一些错误的项目设置相比,给我的感觉更像是一个Visual Studio核心问题(我在一个全新项目的默认模板视图中也遇到了同样的问题)。
Cristian Merighi

这就是我修复VS 2015 RTM中一个非常类似的问题的方式: stackoverflow.com/a/32308899/1551276
Vladimir Abashin

Answers:


127

我通过重置用户数据解决了这个问题

devenv.exe /resetuserdata

并删除我项目中的“ .vs”文件夹。


警告:这将重置所有用户设置。从本质上讲,这就像重置为出厂默认设置。您将丢失所有自定义的键盘快捷键,已安装的扩展程序等。


14
我不需要为此删除.vs文件夹来解决我的问题。resetuserdata够用了
Phil

9
只需确保从此文件夹“ C:\ Program Files(x86)\ Microsoft Visual Studio 14.0 \ Common7 \ IDE \”运行该文件夹,尤其是在计算机上安装了多个VS的情况下。
Miguel

10
对我来说devenv.exe /resetuserdata 没有解决问题!仅供参考:我没有收到任何错误,但VS并未绘制Razor视图的语法。
A-Sharabiani

7
请注意,您将丢失所有Visual Studio设置,例如扩展名和凭据(已登录帐户的凭据)!VS必须在运行前关闭devenv.exe /resetuserdata
fabriciorissetto

9
使用此命令之前,请先了解其功能。除了一些不便之处,例如使您退出Visual Studio并重置窗口,它还卸载了一些扩展程序和Resharper。查找正确的版本以重新安装花费的时间比我预期的要长。
杰森

162

这对我来说也一直存在,似乎与扩展程序更新有关,但是我还不能怪任何具体的事情。我能够发现的是一种不太麻烦的解决方案。

以我为例,删除此目录的内容可使IDE恢复:

%LocalAppData%\Microsoft\VisualStudio\14.0\ComponentModelCache

编辑:我刚刚碰到了这可能也很方便的一个- 清除MEF组件缓存(Open VSIX Gallery)


6
ResetUserData对我有用,但是问题又回来了。这有效,并且侵入性小得多(无需还原所有扩展名)。
ChadT

13
这对我有用,而没有运行devenv.exe / resetuserdata
Jaecen

4
这也为我工作。我首先尝试了resetuserdata命令,但这似乎没有任何作用。这立即生效!
yesman

4
它对我有用,发生了好几次,而且我总是重设用户数据,而且很糟糕,我使用漫游扩展管理器使重新安装扩展变得更加简单
ivi.hamiti 2015年

2
在VS2015 Professional中未解决此问题。剃刀语法突出显示和智能感知仍然不起作用。没有错误显示。
贾斯汀·斯基尔斯

11

FWIW,我在两台不同的计算机上遇到了VS 2015 Enterprise的问题。在一台计算机上,重置用户数据使问题消失了一段时间。在另一台计算机上,我必须完全卸载并重新安装VS,问题消失了一段时间。在两台机器上,安装扩展程序后都会再次出现此问题(一次安装Web Essentials,一次安装Git Diff Margin)。

我烧掉了一个MSDN技术支持案例,答案是……是的,这是一个错误,MS知道了,他们正在努力。

这不是一个特别可行的答案,但仍然是一个答案...

编辑:关于解决该问题的主题,自从我发布此“答案”以来,我再遇到几次该问题。最近,我安装了NuGet软件包管理器的更新程序,当VS重新启动时,它开始出现此问题。我跑了devenv.exe /resetuserdata,但这没有帮助;它仍然被打破。因此,我再次尝试(运行devenv.exe /resetuserdata),然后,问题消失了(暂时)。道德似乎类似于“如果一开始你就不成功……”


有人警告说,这绝对会抹平一切有用的东西。我的面板配置不见了,语法高亮显示不见了,问题仍然没有解决。:(我如何取回我的数据?
Henry Ing-Simmons

8

可能发生过两次 Resharper
它将在将来的版本中修复,但到目前为止(版本10.0.2)已损坏。Resharper会覆盖Visual Studio的智能,因此它将无法正常工作。这也解释了为什么运行devenv.exe /ResetUserData除去它后会对其进行修复Resharper

通过菜单手动将智能感知能力返回给VS:
ReSharper>> Enviroment>> IntelliSense>>填写以下内容:
在此处输入图片说明

这就是VS的智能感知的外观:
在此处输入图片说明


6

我遇到了同样的问题,但原因与其他答案不同。

我怀疑Visual Studio的更新是2015年9月的TypeScript更新,已卸载了Visual Studio 2015的Web开发工具组件。这导致Intellisense无法正常工作。

我在安装程序选项中再次安装了Web Developer Tools,并在安装后删除了ComponentModelCache。那对我有用。


这也为我解决了问题。通过添加/删除程序在VS2015上进行修复时,我可以看到甚至没有安装Web Developer Tools。选中复选框并完成工作。
安德斯·雅各布森

4

这立刻为我解决了。

在Visual Studio中:

单击工具->选项->文本编辑器->所有语言->常规取消选中“自动列表成员”取消选中“参数信息”选中“自动列表成员”(是,您刚刚取消选中的那个)再次选中“参数信息”(您刚刚取消选中的那个)单击确定


尝试过resetuserdata,删除vssc,清除componentcache,但是不起作用。在我尝试了这一点并且成功了!谢谢
c0demaster


1

/ResetUserData解决方案是最好的选择,但我也想我已经找到了这种可能的原因...

我目前正在使用Umbraco在BackOffice中创建宏部分。创建这些文件后,我单击“隐藏/显示所有文件”按钮以在解决方案中显示“宏部分”,并且“剃刀语法突出显示”似乎停止工作,因此我猜想是引入到解决方案中的新文件不是直接通过VS创建的导致此问题。

即使将文件添加到解决方案中,语法高亮也不起作用。


有趣的是,因为我用一把umbraco以及..一把umbraco 7.4.3和VS 2015年,专门..遇到此
布赖恩·拉齐

1

有时,VS Ide根本不显示Intellisense。我只是关闭解决方案。关闭VS。然后重新打开它,问题就解决了。


1

还有另一种解决方案,无需重置所有用户数据

(但仅限窗口布局/工具栏):

关闭所有VS2015实例,[最终备份,然后]删除文件夹:

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

现在,重新打开VS2015:布局已重置为出厂预设,但是Razor语法可以使用


1

仅供参考:我的VS 2015 PRO安装已全面安装了所有第三方。

我在本文中尝试了所有可能的解决方案,但对我没有帮助。克雷格·金索夫(Craig Goldensoph)撰写的文章部分帮助我为我找到了解决方案。

所以首先我做了:取消选中“文本编辑器”->“所有语言”->“常规语句完成”的所有复选框: 在此处输入图片说明

单击确定后-再次重新打开选项对话框:并检查同一部分的所有内容: 在此处输入图片说明

并再次应用设置。您必须重新启动Visual Studio。重新启动后,将需要一段时间来加载,但此后它对我有用。


常见问题。我读到的每个人都有类似的问题,并且总是以不同的方式解决。我只是分享了对我有帮助的东西。抱歉,不是每个人的解决方案。
尤金·博西科夫

1

如果其他选项均无效,则有解决方法。输入后。操作员按“ Ctrl +空格”键,这将强制显示Intellisense对话框。

使用.cshtml MVC剃须刀文件时遇到此问题。


0

这听起来可能很有趣,但是只是做一件事。

将断点放在任何行上,然后等待5秒钟不起作用,然后转到第一行并将断点放在那里,当您放置断点时,它将要求设置断点。 在此处输入图片说明 单击该设置并关闭该设置。做完了 您的Intellisense现在正在工作。

我有VS 2015社区版。以前有VS 2015 Enterprise,它发生在那上面,但是在获得社区之后,我发现两者都发生了相同的事情,并且解决方案也相同。

我在工作中偶然发现了该解决方案,也可以在项目未运行时执行此操作,也可以删除该断点。


0

您无需重置所有内容,只需从中删除所有文件%LocalAppData%\Microsoft\VisualStudio\14.0\ComponentModelCache并重新启动VS,就可以了。


0

我将这个答案发布在另一个SO问题上,只是因为我想防止人们浪费我刚刚浪费的时间。我的问题是我将文件添加到了项目中,但没有包括它们。所以我选择显示所有文件:

在此处输入图片说明

然后选择包含文件夹:

在此处输入图片说明

仅当您将MVC网站作为项目打开时才出现此问题,而当您直接将其作为网站打开时则不会出现。



0

我的keester有点疼痛,但似乎起作用。在我的情况下,这是一个.aspx文件,它不再具有智能感知功能(在我愚蠢地更改了.aspx文件名之后……汲取了教训!)

  1. 例如,我将所有代码从文件(.aspx和.cs)复制到记事本中。
  2. 删除了.aspx文件(依次删除了所有子文件)。
  3. 保存了我的项目。用相同的名称创建一个新的.aspx文件。
  4. 从记事本复制/粘贴我的代码。
  5. 保存了。
  6. 再次尝试智能感知。有效!

绕来回去,但不如卸载/ vs重新安装那么糟糕,这太过分了。大家好运!希望MS在这些年中能解决这个问题!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.