安装并修复我的 VS2015 实例后,我仍然无法让智能感知(服务器端)在我的 MVC 视图中工作。当我在会话中第一次打开 .cshtml 文件并寻址到 Activitylog 文件时,我会立即收到消息提示。在 ActivityLog.xml 中检索到的错误消息(短版):
System.ArgumentException:已添加项目。字典中的键:'RazorSupportedRuntimeVersion'
这是完整版:
System.Reflection.TargetInvocationException:调用的目标已引发异常。 ---> System.ArgumentException:项目已被添加。字典中的键:'RazorSupportedRuntimeVersion' 添加键:System.Collections.Hashtable.Insert(Object key, Object nvalue, Boolean add) at System.Collections.Hashtable.Add(Object key, Object value) 中的'RazorSupportedRuntimeVersion'。 Microsoft.VisualStudio.Utilities.PropertyCollection.AddProperty(Object key, Object property) 在 Microsoft.VisualStudio.Html.Package.Razor.RazorVersionDetector.Microsoft.Html.Editor 的 Collections.Specialized.HybridDictionary.Add(Object key, Object value)。 ContainedLanguage.Razor.Def.IRazorVersionDetector.GetVersion(ITextBuffer textBuffer) 在 Microsoft.Html.Editor.ContainedLanguage.Razor.RazorUtility.TryGetRazorVersion(ITextBuffer textBuffer, Version& razorVersion) 在 Microsoft.Html.Editor.ContainedLanguage.Razor.RazorErrorTagger..ctor( ITextBuffer textBuffer) --- 内部异常堆栈跟踪结束 --- System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) at System.Reflection.RuntimeCo nstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfoculture) 在 System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfoculture, Object[] activationAttributes, StackCrawlMark & stackMark) 在系统。 Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfoculture, Object[] activationAttributes) 在 System.Activator.CreateInstance(Type type, Object[] args) 在 Microsoft.Html.Editor.ContainedLanguage。 Common.ContainedCodeErrorTaggerProvider'1.CreateTagger[T](ITextBuffer textBuffer) 在 Microsoft.VisualStudio.Text.Tagging.Implementation.TagAggregator'1.GatherTaggers(ITextBuffer textBuffer)
如果有任何帮助,我有一些字体颜色自定义,并安装了 Web Essentials、Bundler & Minifier 和 Web Compiler 扩展。
更新:当我打开现有的 Web 应用程序或从头开始创建一个全新的 Web 应用程序时,就会发生这种情况。还有一个 VS2013 实例安装并运行在同一台机器上。
https://i.stack.imgur.com/W1Waz.jpg
正如你从上面的图片中看到的那样,我根本没有智能感知,也没有任何类型的代码着色。
关于如何修复它的任何线索?提前致谢。
这对我来说也经常发生,并且似乎与扩展更新有关,但我还不能归咎于任何具体的事情。我能够发现的是一个不那么侵入性的解决方案。
在我的情况下,删除此目录的内容允许 IDE 恢复:
%LocalAppData%\Microsoft\VisualStudio\14.0\ComponentModelCache
编辑:我刚遇到这个可能也很方便的 - Clear MEF Component Cache(打开 VSIX 库)
我通过重置用户数据解决了这个问题
devenv.exe /resetuserdata
并删除我项目中的“.vs”文件夹。
警告:这将重置您的所有用户设置。本质上,它就像重置为出厂默认设置。您将丢失任何自定义键盘快捷键、已安装的扩展程序等。
devenv.exe /resetuserdata
没有解决这个问题!仅供参考:我没有收到任何错误,但 VS 没有为 Razor 视图绘制语法。
devenv.exe /resetuserdata
之前必须关闭 VS。
FWIW,我在两台不同的机器上遇到了 VS 2015 Enterprise 的这个问题。在一台机器上,重置用户数据使问题消失(一段时间)。在另一台机器上,我不得不完全卸载并重新安装 VS,问题消失了一段时间。在两台机器上,我安装了一个扩展后问题又回来了(一次是在安装 Web Essentials 时,一次是在安装 Git Diff Margin 时)。
我烧毁了一个 MSDN 技术支持案例,答案是……是的,这是一个错误,MS 知道,他们正在努力解决。
不是一个特别可行的答案,但仍然是一个答案......
编辑:关于解决问题的问题,自从我发布这个“答案”以来,我又遇到了几次这个问题。最近,我安装了 NuGet 包管理器的更新,当 VS 重新启动时,它开始出现此问题。我跑了 devenv.exe /resetuserdata
,但这没有帮助;它还是坏了。所以我再次尝试(运行 devenv.exe /resetuserdata
)并且,bada bing bada boom,问题消失了(暂时)。道德似乎类似于“如果一开始你没有成功......”
可能是因为有了 ReSharper。
它将在未来的版本中修复,但截至目前(版本 10.0.2),它已损坏。 ReSharper 会覆盖 Visual Studio 的 IntelliSense,因此它不起作用,这也解释了为什么运行 devenv.exe /ResetUserData
会修复它,因为它会删除 ReSharper。
https://i.stack.imgur.com/5YZCt.png
https://i.stack.imgur.com/LjgMb.png
我遇到了同样的问题,但原因与其他答案不同。
Visual Studio 的更新(我怀疑 2015 年 9 月的 TypeScript 更新)卸载了 Visual Studio 2015 的 Web 开发人员工具组件。这导致 IntelliSense 无法工作。
我再次在安装程序选项中安装了 Web Developer Tools,并在安装后删除了 ComponentModelCache。这对我有用。
这立即为我修复了它。
在 Visual Studio 中:
单击工具->选项->文本编辑器->所有语言->常规取消选中“自动列出成员”取消选中“参数信息”选中“自动列出成员”(是的,您刚刚取消选中的那个)选中“参数信息”(再次,您刚刚取消选中的那个)单击确定
加上我的 2 美分。以前的解决方案都不适合我,然后我找到了这个链接:
http://www.c-sharpcorner.com/blogs/how-to-resolve-intellisense-issue-in-visual-studio1
特别是这个
解决方案 4:接下来,从以下位置重置设置。工具->导入和导出设置->重置所有设置。
从那里我选择 Visual C#
/ResetUserData
解决方案是您最好的选择,但我也认为我已经找到了可能的原因......
我目前正在使用 Umbraco 在 BackOffice 中创建宏部分。创建这些文件后,我单击“隐藏/显示所有文件”按钮以在我的解决方案中显示宏部分,并且 Razor 语法突出显示似乎停止工作,所以我的猜测是引入到您的解决方案中的新文件不是通过 VS 直接创建的导致这个问题。
即使将文件添加到解决方案中,语法突出显示也不起作用。
还有另一种解决方案,无需重置所有用户数据
(但只有窗口布局/工具栏):
关闭所有 VS2015 实例,[最终备份,然后]删除文件夹:
"[User Directory]\AppData\Roaming\Microsoft\Visual Studio\14.0"
现在,重新打开 VS2015:布局已重置为出厂预设,但 Razor 语法可以工作
仅供参考:我的 VS 2015 PRO 安装已与所有 3-rd 方完全安装。
我在文章中尝试了所有可能的解决方案,但对我没有帮助。 Craig Goldensoph 写的部分帮助我找到了解决方案。
https://i.stack.imgur.com/ZDu6Z.png
https://i.stack.imgur.com/RmPQu.png
并再次应用设置。您必须重新启动 Visual Studio。重新启动后需要一段时间才能加载,但之后它对我有用。
有时,VS IDE 根本不显示 IntelliSense。
我只是关闭解决方案,关闭VS,然后重新打开它,问题就解决了。
如果其他选项都不起作用,则有一种解决方法。输入'.'后操作员,按“Ctrl + Space”键,这将强制 IntelliSense 对话框出现。
我在使用 .cshtml MVC 剃须刀文件时遇到了这个问题。
这可能听起来很有趣,但只是为了做一件事..
https://i.stack.imgur.com/kbRMM.png
我有 VS 2015 社区版。以前有 VS 2015 企业版,它发生了,但是在获得社区后,我发现同样的事情发生了,并且相同的解决方案对两者都有效。
我在工作期间偶然发现了该解决方案。在项目未运行时也这样做。您也可以删除该断点。
您不需要重置所有内容,只需从 %LocalAppData%\Microsoft\VisualStudio\14.0\ComponentModelCache
中删除所有文件并重新启动 VS,就可以了。
我已经在另一个 SO question 上发布了这个答案,只是因为我想防止人们浪费我刚刚浪费的时间。我的问题是我将文件添加到项目中,但没有包含它们。所以我选择显示所有文件:
https://i.stack.imgur.com/6ONYm.jpg
然后选择包含文件夹:
https://i.stack.imgur.com/pF3F7.jpg
该问题仅在您将 MVC 网站作为项目打开时出现,而不是在您直接将其作为网站打开时出现。
我的 keester 有轻微的疼痛,但似乎有效。在我的情况下,它是一个不再执行智能感知的 .aspx 文件(在我愚蠢地更改了 .aspx 文件名之后......吸取了教训!)
例如,我将文件(.aspx 和 .cs)中的所有代码复制到记事本中。删除了 .aspx 文件(这又删除了所有子文件)。保存了我的项目。创建了一个具有相同名称的新 .aspx 文件。从记事本复制/粘贴我的代码。保存了它。再次尝试智能感知。有效!
绕道而行,但不如卸载/重新安装那么糟糕,这完全是矫枉过正。大家好运!希望 MS 能在这些年里得到这个修复!