Visual Studio 2015 断剃刀 Intellisense

Visual Studio 2015 Broken Razor Intellisense

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

System.ArgumentException: Item has already been added. Key in dictionary: 'RazorSupportedRuntimeVersion'

完整版如下:

System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.ArgumentException: Item has already been added. Key in dictionary: 'RazorSupportedRuntimeVersion' Key being added: 'RazorSupportedRuntimeVersion' at 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(Object key, Object value) at Microsoft.VisualStudio.Utilities.PropertyCollection.AddProperty(Object key, Object property) at Microsoft.VisualStudio.Html.Package.Razor.RazorVersionDetector.Microsoft.Html.Editor.ContainedLanguage.Razor.Def.IRazorVersionDetector.GetVersion(ITextBuffer textBuffer) at Microsoft.Html.Editor.ContainedLanguage.Razor.RazorUtility.TryGetRazorVersion(ITextBuffer textBuffer, Version& razorVersion) at Microsoft.Html.Editor.ContainedLanguage.Razor.RazorErrorTagger..ctor(ITextBuffer textBuffer) --- End of inner exception stack trace --- at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, StackCrawlMark& stackMark) at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes) at System.Activator.CreateInstance(Type type, Object[] args) at Microsoft.Html.Editor.ContainedLanguage.Common.ContainedCodeErrorTaggerProvider'1.CreateTagger[T](ITextBuffer textBuffer) at Microsoft.VisualStudio.Text.Tagging.Implementation.TagAggregator'1.GatherTaggers(ITextBuffer textBuffer)

如果有任何帮助,我进行了一些字体着色自定义,并安装了 Web Essentials、Bundler & Minifier 和 Web Compiler 扩展。

UPDATE:当我打开一个现有的网络应用程序或当我从头开始创建一个全新的应用程序时,它就会发生。 在同一台机器上还安装了 VS2013 实例和 运行。

如上图所示,我完全没有智能感知,也没有任何代码着色。

关于如何修复它的任何线索? 提前致谢。

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

devenv.exe /resetuserdata

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


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

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

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

即使将文件添加到解决方案中,语法突出显示也不起作用。

我也经常遇到这种情况,似乎与扩展更新有关,但我还不能归咎于任何具体问题。我能够发现的是一个侵入性较小的解决方案。

在我的例子中,删除此目录的内容允许 IDE 恢复:

%LocalAppData%\Microsoft\VisualStudio.0\ComponentModelCache

编辑:我刚刚发现这个可能也很方便 - Clear MEF Component Cache(打开 VSIX 画廊)

FWIW,我在两台不同的机器上使用 VS 2015 Enterprise 时遇到了这个问题。在一台机器上,重置用户数据使问题消失了(一段时间)。在另一台机器上,我不得不完全卸载并重新安装 VS,问题暂时消失了。在两台机器上,我安装扩展后问题又出现了(一次是在安装 Web Essentials 时,一次是在安装 Git Diff Margin 时)。

我烧毁了一个 MSDN 技术支持案例,答案是......是的,这是一个错误,MS 知道它,并且他们正在处理它。

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

编辑:关于解决这个问题,自从我发布这个 "answer" 之后,我又遇到了几次这个问题。最近,我安装了 NuGet 包管理器的更新,当 VS 重新启动时,它开始出现这个问题。我 运行 devenv.exe /resetuserdata,但这没有帮助;它仍然坏了。所以我再次尝试 (运行 devenv.exe /resetuserdata) 并且,bada bing bada boom,问题消失了(暂时)。寓意似乎类似于 "if at first you don't succeed..."

这马上就为我修好了。

在Visual Studio中:

点击工具->选项->文本编辑器->所有语言->常规 取消选中 "Auto list members" 取消选中 "Parameter information" 选中 "Auto list members"(是的,您刚刚取消选中的那个) 检查 "Parameter information"(同样,您刚刚取消检查的那个) 单击确定

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

Visual Studio 的更新(我怀疑 TypeScript 在 2015 年 9 月更新)卸载了 Visual Studio 2015 的 Web 开发人员工具组件。这导致 IntelliSense 无法工作。

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

有时,VS IDE 根本不显示 IntelliSense。

我只是关闭解决方案,关闭VS,然后重新打开,问题解决。

还有一个解决方案,不重置所有用户数据

(但只有 window layouts/toolbars):

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

"[User Directory]\AppData\Roaming\Microsoft\Visual Studio.0"

现在,re-open VS2015:布局已重置为出厂预设,但 Razor 语法可以工作

仅供参考:我的 VS 2015 PRO 安装已完全安装所有第 3 方。

我在文章中尝试了所有可能的解决方案,但对我没有帮助。 Craig Goldensoph 所写的部分帮助我找到了适合我的解决方案。

所以我首先做了:取消选中文本编辑器的所有复选框 -> 所有语言 -> 一般语句完成:

单击“确定”后 - 再次重新打开选项对话框:并检查同一部分的所有内容:

并再次应用设置。 您必须重新启动 Visual studio。重新启动后需要一段时间才能加载,但之后它对我有用。

我的是基斯特有点痛,但似乎有效。在我的例子中,它是一个不再执行智能感知的 .aspx 文件(在我愚蠢地更改了 .aspx 文件名之后......吸取了教训!)

  1. 例如,我将文件(.aspx 和 .cs)中的所有代码复制到记事本中。
  2. 删除了 .aspx 文件(该文件又删除了所有子文件)。
  3. 保存了我的项目。已创建同名的新 .aspx 文件。
  4. Copy/pasted 我的记事本代码。
  5. 保存了。
  6. 再次尝试智能感知。成功了!

绕过方法但没有 uninstalling/vs 重新安装那么糟糕,这完全是矫枉过正。 祝大家好运!希望 MS 能在这些年中解决这个问题!

可能是因为有 ReSharper。

它将在未来的版本中修复,但截至目前(版本 10.0.2),它已损坏。 ReSharper 覆盖 Visual Studio 的 IntelliSense,因此它不会工作,这也解释了为什么 运行 devenv.exe /ResetUserData 修复它,因为它删除了 ReSharper。

通过菜单手动return VS 的 IntelliSense 电源:
ReSharper >> Enviroment >> IntelliSense >> 填写以下内容:

VS 的 IntelliSense 应该是这样的:

添加我的 2 美分。 None 以前的解决方案对我有用,然后我发现这个 link:

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

特别是这个

Solution 4:

Next, reset the Settings from the following location.

Tools->Import and Export settings->Reset all settings.

从那里我选择 Visual C#

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

在任何行上放置断点,然后等待 5 秒,然后不起作用 转到第一行并在那里放置断点,当你放置断点时,它会要求设置断点。 单击该设置并关闭该设置。 完毕。你的智能感知正在工作。

我有 VS 2015 Community edition.Previously 有 VS 2015 Enterprise 并且它发生在那个上面但是在获得社区之后我发现同样的事情发生并且相同的解决方案适用于两者。

我在 work.Also 期间偶然发现了解决方案,当项目不是 running.and 时,您也可以删除该断点。

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

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

然后选择包含文件夹:

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

我只能通过更新网页版本来解决这个问题,我在另一个类似的问题中提到过:

Razor intellisense not working in VS 2015

如果其他选项中的 none 有效,则有一个解决方法。输入'.'后运算符,按“Ctrl + Space”键,这将强制显示 IntelliSense 对话框。

我在处理 .cshtml MVC razor 文件时遇到了这个问题。