Visual Studio 2013 IntelliSense停止适用于ASP.NET MVC5控制器


132

我在Visual Studio 2013 ASP.NET MVC 5项目中遇到一个奇怪的问题。突然之间,MVC 5项目的Controller类中的IntelliSense根本无法工作。

我的解决方案中还有其他类库项目,并且IntelliSense正在这些类库项目文件中工作,但是问题仅在MVC项目内。通常,这类问题可以通过重新启动Visual Studio来解决:我不仅重新启动了Visual Studio,而且还重新启动了计算机,而且IntelliSense问题根本无法解决。

还有其他步骤可以使我恢复IntelliSense吗?

Answers:


209

关闭Visual Studio。删除<ProjectName> .v12.suo文件。重新打开解决方案。


谢谢(你的)信息。如果我的Visual Studio intellisense再次停止工作,则下次我将尝试该技巧。
Emran Hussain 2014年

15
我发现删除suo文件可解决许多问题。就像Visual Studio相当于重新启动。谢谢你的提醒。
grahamesd 2014年

1
是的...现在为我解决了这个问题。我的ProjectName.v12.suo大小为982 KB。删除了 关闭解决方案。重新打开解决方案并ProjectName.v12.suo创建一个新的。Intellisense又回来了,但是这个新.suo文件现在只有500 KB。非常有意思。也许微软应该纠正这种不良行为?不知何故,它会导致VS失去Intellisense,如果没有它,工作真的很痛苦。:)
Leniel Maccaferri 2014年

3
没有为我工作。对我有用的是重置设置。
DougCouto 2015年

这可以解决IntelliSense问题,但是您同时也可以松开所有断点,书签等。
安德里亚斯(Andreas)

68

重置我的设置或导入以前导出,工作设置,重新启动Visual Studio的工作:Tools > Import and Export Settings... > Reset all settings

编辑:这一直在我身上发生,令人惊讶的是,在VS Express中经常发生,在VS Professional中偶尔发生。我在Pro中注意到的一件事是,它是在意外关闭之后发生的(当IT在深夜中强制重新启动时)。因此,可能与Visual Studio无法正确关闭有关。上面描述的技术每次都起作用。


1
谢谢,今天,我又遇到了Intellisense问题,您的解决方案解决了该问题。
Emran Hussain 2014年

1
谢谢,这也对我有用。如果您从头开始阅读,请尝试此操作,然后再删除所有扩展。
另一位史蒂夫·史蒂夫(Steve)

:DI实际上首先删除了我所有的扩展。无论如何,它奏效了!
Luis Lavieri 2014年

这也解决了我的问题
Contractorwolf

这是最好的选择。优秀的。
尼尔森·米兰达2015年

35

工具>选项>文本编辑器> C#>常规

确保选中“自动列出成员”


这对我有用。删除.suo文件以前曾有过多次尝试,但是这次没有。
Craig

这对我有用。Visual Studio2013。IT将我们切换到新域,并丢失了所有VS设置。
boilers222

27

我找到了解决问题的一种方法。即,1.->从解决方案中删除ASP.NET MVC项目,2.->然后,将MVC项目添加回解决方案中。

通过执行这些步骤,我可以再次获得Intellisense。但是,我对此解决方案不满意,因为下次当我双击解决方案文件以打开解决方案时,我看到智能感知不再起作用。我想知道它如此行事的真正原因。

编辑:

最终,我发现这是引起问题的第三方视觉工作室扩展。为了找出该扩展名,我删除了所有扩展名,然后一个接一个地添加了扩展名,然后停在找到导致我无法入睡的罪魁祸首扩展名:)的地方。


1
处理了一个月,这让我发疯。从解决方案中删除和读取(尽管很痛苦)对我也确实起作用。谢谢!
NorthFork 2014年

6
就我而言,它是Xamarin扩展,但我不想对Xamarin不好说,因为,他们的客户支持非常出色。一旦我报告了问题,他们便迅速为我提供了固定版本。此外,Xamarin扩展的最新版本似乎不再具有该问题。我的观点是,任何扩展程序的特定版本都可能导致此类问题,我们可能需要逐个卸载扩展程序以找出导致问题的原因。例如,今天好的扩展的未来版本也可能导致此问题。在这种情况下,我们需要提防。
Emran Hussain 2014年

2
卸载项目并重新加载它也对我有用,谢谢!
罗布

1
就我而言,它是Xamarin扩展。卸载它,问题就消失了。这也是最新版本!
Guy Lowe 2014年

1
对于Xamarin扩展,我遇到了同样的问题,但是由于某些原因,只有一个特定的项目。这是一个过期的试用版,所以我只是将其卸载,然后语法高亮显示回来了。
GnomeCubed 2015年


6
  • 工具->选项
  • 文字编辑器-> C#-> Intellisense
  • 确保选中“键入字符后显示完成列表”

VS2013智能感知代码完成


1
这对我有用。我不确定安装是否默认未选中这些选项,但以下选项对我而言未选中,这是全新安装。“自动列出成员”“参数信息”。我也没有获得方法参数的智能感知。我唯一拥有的插件是GhostDoc
gcoleman0828 2014年

@ gcoleman0828谢谢!这是VS2013对我来说正确的答案。
Rod Hartzell

5

我不确定为什么会发生这种情况,但是当我发生这种情况时,只需重启Visual Studio就可以恢复Intellisense。

没错,这确实很烦人。


4

有时VS设置的RESET可以帮助:

工具->导入和导出设置向导->重置所有设置->复选框“否,仅重置设置,覆盖我的当前设置”->下一步>下一步>下一步

我把RESHARPER弄乱了,这很有帮助。


2
好吧,对我来说就像那样。我把RESHARPER的设置弄乱了。
d.popov 2015年

2
已投票。Resharper过去对我的设置造成了严重破坏。
扎克2015年

这仅对尚未自定义任何内容的人可接受。
t3chb0t

3

我发现解决IntelliSense问题的最佳方法是简单地在解决方案资源管理器中卸载项目,然后再次加载项目。之后,IntelliSense始终对我有用,并且我不会丢失书签,断点或任何其他设置。


1
这是最简单的方法。TY
凯撒

1

我发现,如果构建失败,则Intellisense似乎会中断。解决了我的构建错误并重建了项目后,Intellisense将在重新加载特定的Razor文件后正常工作。


1

就我而言,重新启动无效。

所以我做了以下奇怪的步骤:

  1. 关闭解决方案
  2. 打开了另一个解决方案
  3. 验证intellisense在此其他解决方案中是否有效。
  4. 关闭其他解决方案
  5. 最后,重新打开第一个解决方案。

而且,智能再次起作用。


这没有用,但是这是一个很好的故障排除步骤,可以查看引起问题的是项目还是Visual Studio本身。
redwards510

1

通常,当缓冲区中有错误时,会发生这种情况。例如,在大多数情况下,当您关闭Windows窗体并重新打开时,便会清除本地缓存错误,因此将其重新加载到内存中。上面的许多解决方案都可以工作,但是有时它就像关闭项目和设计器然后重新打开项目一样简单。

此外,您可以尝试通过以下方式强制重置

Ctrl + K,Ctrl + I显示快速信息Ctrl + Shift +空格显示参数信息


1

我尝试了很多无效的方法。最后,我将代码剪切到剪贴板,重新创建了控制器并粘贴了代码。问题已解决!


1

我的文本编辑器中也存在与Intellisense相同的问题。

我只是close不提供Intellisense的example.cs文件,并在不重新启动的情况下重新打开该类,Visual Studio它对我有用。

注意:解决方案资源管理器中的所有.CS文件都没有相同的问题


1

我使用VS 2013,但遇到了同样的问题。我的解决方案是将VS更新到最新版本。在我的案例Update 4中。项目中的简单引用必须与计算机(OS)上GAC中的程序集匹配。Intellisense来自VS,而不是项目。

我希望这一点对您有用。


1

...另一个答案-但这是让我痛苦的原因:我安装了Developer Assistant,它运行良好,但突然停止提供建议。要使其重新工作:

选项->开发人员助手-> Intellisense->默认Visual Studio Intellisense

花了我5个小时才发现:(

HTH。


1
Tools->Options->Text Editor->C# (or All Languages)->General

选中复选框enable Auto List Members,并Parameter Information在右侧窗格中。

如果未选中,请选择它。



0

每当我与一个特定的MVC5项目一起工作时,我都会得到同样的结果。重新启动VS2013不起作用。删除suo文件不起作用。重置所有工具设置无效。唯一可行的方法是从解决方案中删除项目,然后再次添加。看到我每天必须做的事情真的很烦。尤其是当我设置为重新打开我打开过的最后一个文件时,我需要跟踪正在处理的文件并重新打开它们,而不是自动弹出。


0

我将VS 2013与MVC 5配合使用。对我来说,解决方案是将以下内容添加到Web.config:

<compilation debug="true" targetFramework="4.5.1">
  <assemblies>
    <add assembly="System.Web.Helpers, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Web.Optimization, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Web.WebPages, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  </assemblies>
</compilation>

0

Rushonerok的解决方案非常适合我。
对于任何不知道的人:<ProjectName> .v12.suo是项目根文件夹中的隐藏文件。您必须在文件浏览器中设置“显示隐藏的文件”才能看到它。


0

到目前为止,这些解决方案中的一些对我不起作用。

我有以下解决方法

只需在新变量中明确声明要使用的类型,然后使用代替Model

@model MyModel
MyModel mymodel = Model;

@mymodel.MyIntelisenseIsWorkingAgain

0

为解决此问题,我关闭了Visual Studio Express 2013,然后重新打开了解决方案,但.sln直接从文件系统中双击其文件。从“起始页”打开它时,我的控制器的Intellisense损坏了。



0

有时您会错误地关闭它。尝试ctrl+space在Windows或cmd+spaceMac上将其打开。


0

我知道我来晚了,但是将其添加到我的App.config文件中就可以了!

<system.web>
    <compilation>
        <assemblies>
            <add assembly="System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        </assemblies>
    </compilation>
</system.web>
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.