代码之家  ›  专栏  ›  技术社区  ›  Marcelo Myara

升级到Visual Studio 2015会导致项目的智能感知中断

  •  6
  • Marcelo Myara  · 技术社区  · 9 年前

    我经历过很多类似的问题,但找不到适合我的东西。

    我正在将IDE从Visual Studio 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)时,我收到了几个助手的警告,其中一些“using”变灰了(尽管它们应该是需要的),@modelmyModel显示得就像@model指令不是剃刀之后的所有内容一样(它被intelligense着色处理得像HTML一样)。

    我已经找到并尝试了:

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

    当从VS2015创建另一个MVC项目时,一切都很好。

    下面是一个烦人问题的例子:

    enter image description here

    1 回复  |  直到 9 年前
        1
  •  6
  •   Community CDub    8 年前

    好的,终于明白了。 发布我发现的相信它可能会帮助其他人的信息:

    1. 导致上述问题的原因似乎是项目是在旧的MVC版本(使用旧的Razor、EF等)上创建的。

    2. 如本答复所述: Visual Studio 2015 Razor View MVC Types not recognized ,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文件夹中的配置文件。在那里,您可能会发现一些对MVC和Razor旧版本的引用。更新这些版本值(所有这些值)以匹配包的更新版本(您可以在新的Visual Studio上创建一个新的空MVC项目,并检查这些值,以提示它们应该是什么)。

      这一步是关键!因为,即使你更新了项目的包,一些网站。配置引用可能仍然会提到原始版本。

    5. 清洁解决方案(生成>清洁解决方案)并关闭项目。重新打开并编译它。现在(希望)一切都会好起来。

    [编辑]

    1. 还有一件事:如果您的项目在这个IDE转换期间也从Framework 4.5更新到了4.5.1,那么您还应该安装一个名为“Microsoft.CodeDom.Provides.DotNetCompilerPlatform”的NuGet包(如 https://support.microsoft.com/en-us/kb/3025133 ).