首页 文章

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

提问于
浏览
120

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

我尝试了以下无济于事

  • 禁用所有Visual Studio扩展

  • 删除我的 .suo 文件

  • 删除项目并将其重新添加到解决方案中

我怎样才能解决这个问题?

例:

21 回答

  • 0

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

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

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

  • 4

    我在_2388117中找到了另一种修复它的方法 devenv.exe /ResetUserData

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

    要查找正在运行的Visual Studio版本的版本号,请参阅this列表 . 请注意,只有主要数字很重要,次要版本可能会而且可能会有所不同 . 在我的情况下,我安装了Visual Studio 2017企业版,因此我查找 15.xx 并在AppData文件夹中找到 15.0_9a1c4a06 .

  • 0

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

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

    编辑:人们说这只适用于RC,而不适用于RTM,所以你可能想先尝试其他修复 .

  • 1

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

    对我的修复是去程序和属性> Visual Studio社区版>更改 . 我点击了修改 .

    在列表中,请确保在 "Microsoft Web Developer Tools" 下的 "Microsoft Web Developer Tools" 上打勾 .

    它没有在我的列表中检查howewer:/

    enter image description here

  • 0

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

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

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

  • 0

    我安装了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
    

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

  • 5

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

    So, if you have similar symptoms, here's how I fixed it on my machine:

    • 启动"Start Experimental Instance of Visual Studio 2015"并打开您的项目 . 如果intellisense正在工作并且突出显示了剃刀语法,那么您很有可能以下方法将起作用 .

    • 卸载"Productivity Power Tools 2015"并关闭Visual Studio .

    • 转到 %LOCALAPPDATA%\Microsoft\VisualStudio\ 并删除 14.0 文件夹 .

    • 启动VS - 它应该从刚刚安装开始 .

    附:实际上,我花了好几次让我的intellisense工作,因为我首先禁用了PowerTools并且在重新启用时再次破坏了VS.因此,它需要完全重新安装 . 可能是由你的另一个扩展引起的 .

  • 0

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

  • 0

    我有一个类似的问题,任何剃刀脚本都不会突出显示,intellisense将无法工作,编译器将无法识别任何错误(即使我故意将语法错误放入!)

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

    希望有所帮助!

  • 212

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

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

  • 0

    一些观点正在发挥作用对我来说很好,有些根本没有......对我来说唯一有用的东西:

    • 关闭VS.

    • 删除C:\ Users \%username%\ AppData \ Local \ Temp

    • 重启VS.

    • 问题解决了

    我也尝试了大多数其他解决方案,但它们对我不起作用 .

  • 0

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

  • 52

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

  • 10

    在我的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>
    
  • 6

    卸载并重新安装以下设备为我工作:

    Microsoft.AspNet.Mvc

    Microsoft.AspNet.WebPages

    Microsfot.AspNet.Razor

    我尝试重置userdata,删除temp和14,以及更改选项设置,但没有一个工作 . 我甚至尝试修复并重新安装 . 我正在使用VS 2015版本14.0.24720.00更新1

  • 7

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

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

  • 3

    唯一对我有用的是将项目的"Output Path"更改为 bin\ (以前是 bin\Debug ):

    • 右键单击项目,

    • 点击 Properties 并导航至 Build

    • 滚动到 Headers 为"Output"的最后一节,

    • 将标有 Output path: 的文本框中的值更改为 bin\

  • 0

    以上不起作用,但我管理:

    • 卸载(来自Windows程序和功能) Web Developer Tools for VS 2015,RC,Update 1

    • 安装(从VS安装程序 - >修改) Web Developer Tools (这是上面的另一个版本)

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

  • 2

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

    在global.asax中

    • ,将: WebApiConfig.Register(GlobalConfiguration.Configuration); 更改为 GlobalConfiguration.Configure(WebApiConfig.Register);

    • 确保项目使用的所有软件包与MVC 5和Web API 2兼容

    • 删除以下任何已安装的ASP.NET NuGet包:

    • Microsoft.AspNet.WebPages.Administration

    • Microsoft-Web-Helpers( do not confuse with Microsoft.AspNet.WebHelpers !

    • Microsoft.AspNet.Mvc.FixedDisplayMode

    • 升级所有ASP.NET NuGet包 . 在程序包管理器控制台中,您可以运行以下命令: Update-Package . 没有任何参数,它将更新每个包 .

    • 更新应用程序和视图配置文件:

    • 对于名称属性为 “System.Web.Mvc” 的所有元素,将版本号更改为新版本(在解决方案资源管理器中检查程序集的版本,它必须等于或高于“5.0.0.0”)

    • 对名称属性为 "System.Web.Helpers”"System.Web.WebPages" 的所有元素执行相同操作 .

    • 检查配置文件中的程序集 "System.Web.Helpers""System.Web.Mvc""System.Web.WebPages" 的绑定重定向,"oldVersion"和"newVersion"必须符合上面所做的更改 .

    • 找到 appSettings 部分并将 webpages:version 从"2.0.0.0.0"更新为"3.0.0.0"

    • 将包含 “System.Web.WebPages.Razor” 的所有元素从版本“2.0.0.0”更新为版本“3.0.0.0” . 如果此部分包含 “System.Web.WebPages” ,请将这些元素从版本“2.0.0.0”更新为版本“3.0.0.0”

    • 如果您在前面的步骤中删除了 Microsoft-Web-Helpers NuGet包,请在包管理器控制台中使用以下命令安装 Microsoft.AspNet.WebHelpersInstall-Package -Id Microsoft.AspNet.WebHelpers

    我希望这将有所帮助 .

  • 27

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

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

    • 确保factoryType程序集字符串中的Version与您安装的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" />
    
  • 2

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

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

相关问题