升级到Visual Studio 2015会导致intellisense在项目中被破坏

Mar*_*ara 6 asp.net-mvc visual-studio razor

我经历了很多类似的问题,但找不到任何对我有用的东西.

我正在将我的IDE从VisualStudio for Web(v10)升级到Visual Studio 2015(v14,我猜)社区版.我试图在新IDE上使用的主要项目是MVC 5(5.2.3),EF 6.1(6.1.3)和其他一些东西.

问题是:在新IDE上打开项目时,一切看起来都很好(甚至编译和工作).我在项目资源管理器上运行了MVC上下文菜单(在适当的时候显示"添加控制器..."和"添加视图...").Razor Intellisense只是(真的很烦人).

当我打开一个View文件(.cshtml)时,我会收到几个帮助器的警告,一些"使用"是灰色的(即使它们应该是需要的),@ model myModel显示为@之后的所有内容.模型指令不是剃刀(它通过intellisense着色处理为HTML).

我已经找到并尝试过的内容:

    • 我已经尝试从vs(devenv/ResetUserData)清除UserData
    • 我已经尝试在安全模式下运行VS2015
    • 我已经尝试以管理员身份运行VS2015
    • 我已经尝试将Project的目标框架设置为4.5.1(曾经是4.5)
    • 在尝试在VS2015上使用它之前,我已经尝试在Visual Studio Community 2013上打开该项目并将其保存在那里.

从VS2015创建另一个MVC项目时,一切正常.

这是一个恼人问题的例子:

在此输入图像描述

Mar*_*ara 6

好的,终于明白了.发布我发现相信它可以帮助其他人:

  1. 似乎导致提到问题的是该项目是在旧的MVC版本(使用较旧的Razor,EF等)上创建的.

  2. 如本答案中所述:Visual Studio 2015 Razor View MVC类型无法识别,VS2015工具可能无法用于较旧的MVC.

  3. 解决方案是将所有包更新为[至少]在较新的MVC(5?)上接受的次要版本.为此,您可以使用本网站中的列表: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.

  4. 一旦所有内容都是最新的,请打开位于应用程序根目录和Views文件夹中的web.config文件.在那里,你可能会发现一些旧版本的MVC和Razor的引用.更新这些版本的值(所有这些值)以匹配软件包的更新版本(您可以在新的Visual Studio上创建一个新的空MVC项目,并检查这些值作为它们应该是什么的提示).

    抓住这一步!因为,即使你更新了项目的包,一些web.config引用仍然可以提到原始版本.

  5. 清理解决方案(Build> Clean Solution)并关闭项目.重新打开并编译它.现在[希望]一切都应该正常.

[编辑]

  1. 还有一件事:如果您的项目在IDE转换期间也从Framework 4.5更新到4.5.1,您还应该安装一个名为"Microsoft.CodeDom.Providers.DotNetCompilerPlatform"的NuGet包(如https://support.microsoft中所述) .com/zh-cn/kb/3025133).