Visual Studio 2015不是语法突出显示剃刀或智能感知

时间:2015-05-18 19:27:44

标签: c# asp.net asp.net-mvc razor visual-studio-2015

我在VS2015 RC中的Razor视图没有显示C#代码的正确着色。我的项目在VS2013中运行良好,但是2015年没有,并且它没有给我任何关于C#代码的Intellisense。解决方案构建并且网站运行正常。

我尝试了以下无效

  • 禁用所有Visual Studio扩展程序
  • 删除我的.suo文件
  • 删除项目并将其重新添加到解决方案

我该如何解决这个问题?

示例:

22 个答案:

答案 0 :(得分:213)

我已经通过answer找到另一种方法来解决问题而没有%LocalAppData%\Microsoft\VisualStudio\<visual_studio_version_number>\ComponentModelCache

只需在Visual Studio关闭时删除此目录的内容: 15.xx

要查找正在运行的Visual Studio版本的版本号,请参阅this列表。请注意,只有主要数字很重要,次要版本可能会而且可能会有所不同。在我的情况下,我安装了Visual Studio 2017 Enterprise,因此我查找了15.0_9a1c4a06并在AppData文件夹中找到了Dim QColl As Collection Dim Q As Long Dim YtQAr As Variant Dim YtQ As Long, rYtQ As Long Set QColl = New Collection QColl.Add Array("1.2", "1.3", "1.4", "1.5"), Key:="Q1" QColl.Add Array("2.2", "2.3"), Key:="Q2" For Q = 1 To QColl.Count YtQAr = QColl.Item("Q" & Q) For YtQ = LBound(YtQAr) To UBound(YtQAr) rYtQ = RowNo(YtQAr(YtQ)) If rYtQ > 0 Then Rows(rYtQ).Hidden = (UCase(Cells(RowNo("1."), ColAn).Value) <> "TAK") Else Debug.Print "'" & YtQAr(YtQ) & "' was not found!" End If Next YtQ Next Q

答案 1 :(得分:52)

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

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

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

答案 2 :(得分:27)

我在VS 2015 RTM中遇到了同样的问题,只需通过以下方式加载安全模式的Visual Studio即可解决此问题:

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

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

答案 3 :(得分:10)

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

对我的修复是去程序和属性&gt; 更改。我点击了修改。

在列表中,请确保在“Windows和Web开发”下的“Microsoft Web Developer Tools”上打上复选标记。

我的清单中没有检查如何:/

enter image description here

答案 4 :(得分:7)

工具&gt;选项&gt;文本编辑器&gt;所有语言&gt;一般。 取消选中隐藏高级成员选项。单击确定。

一旦我这样做,Intellisense似乎对我有用。然后我重新将其重置并保持功能。我正在使用Visual Studio 2015企业版。

我曾尝试过ResetUserData,这对我不起作用。

答案 5 :(得分:6)

我安装了Visual Studio Community Edition 2015(在使用Visual Studio Community Edition 2013很长一段时间后)并遇到了同样的问题。我尝试了上述所有解决方案,但没有任何帮助。

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

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

......它现在有效!!!

答案 6 :(得分:5)

运行VS 2015 RTM。 / ResetUserData和/ SafeMode都没有为我工作。在启动VS时,还有一些与Productivity Power Tools 2015相关的抱怨与“Error-in-ActivityLog.xml”弹出窗口。

所以,如果您有类似症状,请按照我在机器上修复它的方式:

  1. 启动“启动Visual Studio 2015的实验实例”并打开您的项目。如果intellisense正在工作并且突出显示了剃刀语法,那么以下内容将很有可能。
  2. 卸载“Productivity Power Tools 2015”并关闭Visual Studio。
  3. 转到%LOCALAPPDATA%\Microsoft\VisualStudio\并删除14.0文件夹。
  4. 启动VS - 它应该从刚刚安装开始。
  5. P.S。实际上,我花了好几次让我的intellisense工作,因为我首先禁用了PowerTools并且在重新启用时再次破坏了VS.因此,它需要完全重新安装。可能是由你的另一个扩展引起的。

答案 7 :(得分:4)

如果您的项目是MVC4,这将是效果。查看更多详情here。另请注意,这将在即将发布的版本中得到纠正 如何判断您的项目是否为MVC4?打开packages.config并滚动到Microsoft.AspNet.Mvc的条目。如果列出的版本以“4”开头,则表示您使用的是MVC 4.

答案 8 :(得分:3)

我有一个类似的问题,任何剃刀脚本都不会被突出显示,智能感知不起作用,编译器也不会识别任何错误(即使我故意将语法错误放入!)

我实际上通过转到C:/ Users / YourUserName / AppData / Local / Temp修复了问题并删除了这个文件中的所有内容,我很快就重新启动了VS我的Razor Views开始工作了!

希望有所帮助!

答案 9 :(得分:3)

有些观点对我来说很好,有些观点根本没有......唯一对我有帮助的是:

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

我也尝试了大多数其他解决方案,但它们并没有为我工作。

答案 10 :(得分:2)

友好提醒,确保您已正确使用视图顶部的小写@model,而不是@Model(就像我做错了一样)。

小写@model是一个指令,它强烈地将视图键入到其后面的类的实例中。而大写的Model是获取模型实例的视图的属性。

答案 11 :(得分:1)

我通过在项目/解决方案中包含该文件来解决问题。我忽略了这样一个事实,即如果它没有被包括在内,就没有突出显示/智能感知。

答案 12 :(得分:0)

我一直在下载并安装“ Microsoft ASP.NET和Web工具”和“ Web Essentials”,并且对我有用。

答案 13 :(得分:0)

对我有用的(VS 2015社区)是this回答中建议的选项。以管理员身份运行cmd.exe,运行以下命令:

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

答案 14 :(得分:0)

非侵入性方法是检查您的Views web.config文件以获取正确的版本。这些Web.config文件位于app / Area / AreaName / Views或常规app / Views文件夹下。它们与项目Web.config文件不同。

  • 确保类型程序集字符串中的每个版本与您的NuGet安装版本
  • 相匹配
  • 确保factoryType程序集字符串中的版本与您安装的NuGet版本
  • 相匹配

以下是本评论撰写时的最新例子:

<configSections>
 <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
 <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
 <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
 </sectionGroup>
 </configSections>
<system.web.webPages.razor>
 <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />

答案 15 :(得分:0)

我通过将我的项目更新到ASP .NET MVC版本5来修复此问题。 但它需要对配置文件进行一些进一步的操作。 Here我找到了分步指南:

    在global.asax中
  • ,更改: 的 WebApiConfig.Register(GlobalConfiguration.Configuration); 至 的 GlobalConfiguration.Configure(WebApiConfig.Register);
  • 确保项目使用的所有软件包与MVC 5和Web API 2兼容
  • 删除以下任何已安装的ASP.NET NuGet包:
    1. Microsoft.AspNet.WebPages.Administration
    2. Microsoft-Web-Helpers(不要与Microsoft.AspNet.WebHelpers混淆!
    3. Microsoft.AspNet.Mvc.FixedDisplayMode
  • 升级所有ASP.NET NuGet包。在程序包管理器控制台中,您可以运行以下命令:更新程序包。没有任何参数,它将更新每个包。
  • 更新应用程序和视图配置文件:
    1. 对于名称属性为“System.Web.Mvc”的所有元素,请将版本号更改为新版本(检查解决方案资源管理器中的程序集版本,它必须等于或高于“5.0.0.0”)
    2. 对名称属性为“System.Web.Helpers”“System.Web.WebPages”的所有元素执行相同操作。
    3. 检查程序集的绑定重定向“System.Web.Helpers”“System.Web.Mvc”“System.Web.WebPages”在配置文件中,“oldVersion”和“newVersion”必须符合上述更改。
    4. 找到 appSettings 部分,并将网页:版本从“2.0.0.0.0”更新为“3.0.0.0”
    5. 将包含“System.Web.WebPages.Razor”的所有元素从版本“2.0.0.0”更新为版本“3.0.0.0”。如果此部分包含“System.Web.WebPages”,请将这些元素从版本“2.0.0.0”更新为版本“3.0.0.0”
    6. 如果您在之前的步骤中删除了 Microsoft-Web-Helpers NuGet包,请在程序包管理器控制台中使用以下命令安装 Microsoft.AspNet.WebHelpers 安装包-Id Microsoft.AspNet.WebHelpers

我希望这会有所帮助。

答案 16 :(得分:0)

上面没有用,但我设法:

  • 为VS 2015,RC,Update 1卸载(来自Windows程序和功能)Web Developer Tools
  • 安装(来自VS安装程序 - &gt;修改)Web Developer Tools(它是上面的另一个版本)

所以问题是VS安装程序没有安装Web Developer Tools,将已安装的,不兼容的版本识别为正确版本。

答案 17 :(得分:0)

唯一对我有用的是改变项目&#34;输出路径&#34;到bin\(以前是bin\Debug):

  1. 右键单击项目
  2. 点击Properties并导航至Build
  3. 滚动到标题为&#34;输出&#34;,
  4. 的最后一部分
  5. 将标有Output path:的文本框中的值更改为bin\

答案 18 :(得分:0)

您应该只删除项目中的“.vs”文件夹。(隐藏.vs文件夹)

小心ResetUserData删除Visual Studio上的所有自定义。

答案 19 :(得分:0)

卸载并重新安装以下版本对我有用:

Microsoft.AspNet.Mvc

Microsoft.AspNet.WebPages

Microsfot.AspNet.Razor

我尝试了重置userdata,删除temp和14,以及更改选项设置,但没有一个有效。我甚至尝试修复并重新安装。我使用的是VS 2015版本14.0.24720.00 Update 1

答案 20 :(得分:0)

在我的Web.config中我有这个:

    <system.web.webPages.razor>
        <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <pages pageBaseType="System.Web.Mvc.WebViewPage">
          <namespaces>
            <add namespace="LinkApp.Models.Templates"/>
            <add namespace="System.Web.Mvc" />
            <add namespace="System.Web.Mvc.Ajax" />
            <add namespace="System.Web.Mvc.Html" />
            <add namespace="System.Web.Optimization"/>
            <add namespace="System.Web.Routing" />
            <add namespace="LinkApp" />
          </namespaces>
        </pages>
      </system.web.webPages.razor>

Oddly enough, I moved my custom namespace to the bottom, and that fixed it, like this:

<system.web.webPages.razor>
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <pages pageBaseType="System.Web.Mvc.WebViewPage">
      <namespaces>
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Optimization"/>
        <add namespace="System.Web.Routing" />
        <add namespace="LinkApp" />
        <add namespace="LinkApp.Models.Templates"/>
      </namespaces>
    </pages>
  </system.web.webPages.razor>

答案 21 :(得分:0)

我遇到了同样的问题,不得不下载并安装“Microsoft ASP.NET和Web Tools”和“Web Essentials”。在执行此语法后,突出显示和Razor intellisense再次开始工作。