Visual Studio 2015无法对Razor进行语法高亮和智能感知

121

我的Razor视图在 VS2015 RC 中没有显示 C# 代码的正确着色。在 VS2013 中,我的项目很好地工作着,但在2015年中却不行,并且它没有为我提供任何 C# 代码的智能感知。该解决方案可以建立并运行该网站。

我尝试了以下方法,但都无济于事:

  • 禁用所有 Visual Studio 扩展
  • 删除我的 .suo 文件
  • 从解决方案中移除项目并重新添加它

我该如何解决这个问题?

示例:


3
你考虑过等待完整版本吗?目前的版本仍然存在许多漏洞,只是针对那些不耐烦的人提供的预览版。 - walther
你安装了生产力工具吗?在我的情况下,它们在vs中经常崩溃...目前在vNext项目中没有高亮显示。 - Boas Enkler
这个问题在VS2015 Professional中仍然存在。本帖中的任何答案都不能永久解决此问题。语法高亮仍然无法正常工作。 - Justin Skiles
如果以下的回答都不能解决问题,你可以在这里看一下:https://dev59.com/XlwX5IYBdhLWcg3w6S8h#37756993 安装.NET Core 1.0.0对我来说解决了这个问题。我一开始也遇到了相同的问题,但还有一个与Web模板有关的问题(无法用于新项目)。"Microsoft Web Developer Tools"上的勾号(如下面某个答案所述)一直被勾选。 - user4864425
检查您的MVC版本。如果它是3或更低,则VS 2015不支持它。 - RMuesi
21个回答

214

我在这个答案中发现了另一种不需要使用devenv.exe /ResetUserData的方法来解决这个问题。

只需在关闭 Visual Studio 的情况下删除以下目录内容: %LocalAppData%\Microsoft\VisualStudio\<visual_studio_version_number>\ComponentModelCache

要找到您所使用的 Visual Studio 版本号,请参考列表。请注意,仅主版本号很重要,次版本号可能会有所不同。例如,如果我安装了 Visual Studio 2017 Enterprise,则会查找15.xx并在 AppData 文件夹中找到15.0_9a1c4a06


52

我遇到了同样的问题,目前唯一的解决方法是重置所有用户数据(C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.exe /ResetUserData)。

注意:如果你这么做,你将失去所有自定义配置,例如键盘快捷键和窗口布局!

编辑:有人说这只适用于RC版本,而不适用于RTM版本,因此您可能需要先尝试其他修复方法。


2
你可以在操作前导出按键绑定,然后在需要时恢复它们。 - quadroid
这个命令行中的 '>' 符号是正确的吗?我曾经用反斜杠代替它,结果可以工作。但是这个解决方案对我也起作用了! - Nicholas Petersen
1
你将失去所有的插件。 - Knerd
1
我有企业版(VS 2015)。这个版本有可能有任何解决方案吗?上面的解决方案对我没有用。 - Zeeshan
还有企业版 - 对我也没用。 - Steve French
显示剩余5条评论

27

我在使用VS 2015 RTM时遇到了同样的问题,并且成功通过以下步骤进入安全模式并解决问题:

C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.exe /SafeMode

然后正常地关闭并重新打开它。


1
虽然对我有效,但值得一试。您不会失去当前的设置。 - Nick
这对我没有用,那个错误在安全模式下也会出现(并且显然在“标准”方式下重新打开后也会出现)。 - T-moty
谢谢你帮我保存了设置! - grmbl
太棒了!我也试过了,值得一试。之前的几次我都把设置搞炸了。 - Diego
这种情况已经发生了两次,第一次我重置了所有设置。这一次我尝试了这个方法,对我很有效。 - dotnetmensch
显示剩余3条评论

10

在更新了Visual Studio 2015 Update 1之后,我遇到了相同的问题。我尝试了所有的答案,但对我没有用。

对于我来说,解决方法是去 "程序和功能" > "Visual Studio 社区版" > "更改"。我点击了 修改。

在列表中,确保在 "Windows 和 Web 开发" 下的 "Microsoft Web Developer Tools" 上打上勾。

然而,在我的列表中它没有被选中 :/

输入图片说明


不幸的是,当我尝试这个时,勾号又出现了。:< 它拒绝消失。:< 我仍然被困在这个问题中。:< 现在非常生气VS。:< 这是一个巨大的时间浪费。 - PHenry
看这里:https://dev59.com/XlwX5IYBdhLWcg3w6S8h#37756993。症状是相同的。我通过安装.NET Core 1.0.0解决了这个问题。 - user4864425

7

工具 > 选项 > 文本编辑器 > 所有语言 > 常规。取消勾选“隐藏高级成员”选项。单击确定。

我这样做后,智能感知似乎对我起作用了。然后我将其重置并保持功能。我使用Visual Studio 2015企业版。

我尝试了ResetUserData,但对我没有用。


1
它之前能够工作,但随后又回到了不工作的状态。 - Shawn
1
这对我在C#中不起作用。但是,我去了“文本编辑器> C#”并选中/取消选中“隐藏高级成员”,然后按下确定,Intellisense又开始工作了。 - Todilo
这对我也有效,并且比重置我的环境要好得多! - Paul Carroll
每次我取消选择它后,它又被重新选中了。 - Tony_Henrich
我曾经遇到一个问题,智能感知菜单会在一瞬间弹出然后消失 - 这个解决方案解决了这个问题,现在菜单按预期保持可见。 - X3074861X

6

我之前长时间使用 Visual Studio Community Edition 2013,后来安装了 Visual Studio Community Edition 2015,遇到了同样的问题。尝试了以上所有解决方案均无效。

最后,关闭 Visual Studio 并删除以下文件夹 -

C:\Users\Allwyn\AppData\Roaming\Microsoft\VisualStudio\14.0
C:\Users\Allwyn\AppData\Roaming\Microsoft\VisualStudio\14.0

...现在它可以工作!!!


这个对我起作用了(完整版)VS 2015企业版。 - hal9000
有时候这个方法有效,有时候又无效。对我来说它修复了问题大约五分钟,然后问题又出现了。 - Justin Skiles
这至少暂时解决了我的问题。可能不会持续工作,但我们会看到的。似乎是一个奇怪的错误,应该由微软修复。这个问题存在于2015年和2017年。 - Deathstalker

5

我正在运行VS 2015 RTM版本,但是无论我使用/ResetUserData还是/SafeMode命令都不能解决我的问题。启动VS时,我还遇到了一些与“errors-in-ActivityLog.xml”相关的Productivity Power Tools 2015的抱怨。

如果您有类似的症状,以下是我在我的机器上解决它的方法:

  1. 启动“启动Visual Studio 2015实验版”并打开您的项目。如果智能感知正在工作且Razor语法高亮显示,则有很大机会以下操作将奏效。
  2. 卸载“Productivity Power Tools 2015”并关闭Visual Studio。
  3. 前往%LOCALAPPDATA%\Microsoft\VisualStudio\路径并删除14.0文件夹。
  4. 启动VS - 它应该像刚安装一样启动。

P.S. 实际上,我尝试禁用PowerTools后几次才成功使智能感知生效,但当我重新启用PowerTools后,它又导致了VS的崩溃。因此,这需要完全重新安装。在您的情况下可能是由于其他扩展引起的。


对我来说没问题!Visual Studio 2015企业版。 - Timber
这对我来说没有问题,无需卸载“Productivity Power Tools 2015”。Visual Studio 2015 Enterprise。 - ShurikEv

4
如果你的项目是MVC4,那么效果将会如下所示。更多细节请参见这里。另外请注意,这个问题将在即将发布的版本中得到修正。
如何确定你的项目是否是MVC4?打开packages.config文件并滚动到Microsoft.AspNet.Mvc条目。如果版本号以“4”开头,则表示你正在使用MVC 4。

这确实是我的问题,/resetuserdata也没有帮助 :( - chrilith
更多信息请访问: http://www.asp.net/mvc/overview/releases/how-to-upgrade-an-aspnet-mvc-4-and-web-api-project-to-aspnet-mvc-5-and-web-api-2 - Micaël Félix
这与MVC4无关。使用MVC5和6的项目仍然存在这些问题。 - Justin Skiles
这就是我最终发现的原因。我的项目是MVC 3。VS 2015不支持MVC 3。我尝试了其他所有方法都没有起作用。 - RMuesi

4

我之前也遇到过类似的问题,任何Razor脚本都无法高亮显示,智能感知也无法使用,编译器也无法识别任何错误(即使我故意加入语法错误!)

实际上,我通过转到C:/Users/YourUserName/AppData/Local/Temp并删除此文件中的所有内容来解决了这个问题,一旦我这样做并重新启动VS,我的Razor视图就开始工作了!

希望能对你有所帮助!


这对我有用。我还必须手动删除Razor-Server文件夹中一些被锁定在编译过程中的项目。 - Rudy Scoggins

3

有些视图对我来说工作得很好,有些则根本不行...唯一帮助我的事情:

  • 关闭VS
  • 删除C:\Users\%username%\AppData\Local\Temp文件夹
  • 重新启动VS
  • 问题解决了

我也尝试了大多数其他解决方案,但它们对我没有用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接