我让人给我的电脑重新做了镜像。我的计算机上安装了Visual Studio Version 14.0.25123.00 Update 2。当我尝试使用VS intellisense引用另一个项目时,我得到了这个错误。
CSharpAddImportCodeFixProvider遇到错误,已被禁用
我有两个项目。其中一个使用命名空间ProjectName.Web
。另一个项目使用ProjectName.Web.Controllers
。当我引用ProjectName.Web.Controllers
时,提供程序崩溃了,我相信这是因为它是作为一个项目设置的。有办法解决吗
8条答案
按热度按时间avkwfej41#
我在VS-2015更新3上遇到了同样的问题。
我做的是:
1)正在关闭visual studio
2)以管理员身份重新启动
rwqw0loc2#
在DataLayer中键入
using (SqlConnection...){}
后自动选择Add using System.Data.SqlClient
时发生在我身上,在一个Repository类中。没有什么帮助(除了创建新项目),但我看到问题是加载
System.Data.SqlClient.dll
文件,尽管它存在于适当的文件夹中。通过反复试验发现,从DataLayer中删除
Dependencies->Assemblies->System.Data.SqlClient
后(右键单击->删除,或在选择时按Delete键),我可以添加System.Data.SqlClient
而没有任何错误。没有尝试其他情况下出现
CSharpAddImportCodeFixProvider encountered an error and has been disabled
消息,但解决方案可能是类似的。在我的情况下,问题出现可能是由于
.net
核心版本冲突或类似的东西,因为该项目是在外部驱动器上,并在另一台计算机上创建。编辑:此外,解决方案文件夹中的.vs文件夹(默认情况下隐藏)可能会导致一些错误,特别是当项目在不同计算机之间移动时。我从经验中知道,尽管存在
using namespace_name
语句,但智能感知似乎会被破坏,来自其他命名空间的类将不可用。解决方案是删除.vs文件夹或避免将其与项目一起复制,如下所示:https://weblog.west-wind.com/posts/2018/Aug/07/Fixing-Visual-Studio-Intellisense-Errorspcww981p3#
发生此错误的原因可能有多种。因此,这个答案可能并不适用于所有情况,尽管它似乎只发生在引用另一个项目时。
并非所有语句都发生此错误。在我的例子中,我有以下代码:
一旦intellisense为
Timer.Change(
打开,错误就发生了。请注意,我当时没有参数。如果存在有效参数,则不会出现错误。我可以通过 * 更新框架的版本 * 来解决这个问题。我发现这两个项目分别针对不同的框架。4.5.2和4.6。
只要框架版本不同,就会发生错误。一旦两者相等(4.5.2或4.6),则不再显示错误。
我已经用VisualStudioVersion = 14.0.25420.1(Visual Studio Community 2015)测试过了。
--更新--
我已经将此作为bug报告给Microsoft。包括繁殖的步骤。
w8f9ii694#
我最终犯了同样的错误。我所做的是手动找到System.Data.SqlClient的nuget包,安装并在我正在处理的类中调用它,如:
不知道这是否是某种bug,因为它发生在我使用Visual Studio 2019社区创建的新空白项目上
希望它能帮助某人
roejwanj5#
通过从nuget软件包管理器安装sqlClient软件包,右键单击项目选择管理nuget软件包,解决了同样的问题。然后转到浏览选项卡并搜索System.Data.SqlClient并安装它。很简单:)
mrphzbgm6#
从你得到的标签“CSharpAddImportCodeFixProvider”判断,我猜你的问题是由于Visual Studio试图识别和/或纠正C#源代码文件顶部缺少的“using”语句,其中你引用了一个需要它的类。通常处理这类问题的Visual Studio组件是Intellisense,或第三方语法突出显示/纠正插件,如JetBrains的ReSharper。
仔细想想,我不太确定这是智能感知的错,而不是插件ReSharper的错。这还有待确定。
我确实向微软提交了一份类似的bug报告。在我的例子中,错误似乎是由于智能感知不知道如何处理我自己代码中的逻辑错误(参见https://connect.microsoft.com/VisualStudio/feedback/details/3133049)。
在我的例子中,我无意中将一个方法的代码放在了它的类定义之外,尽管在它类似命名的名称空间之内。Visual Studio 2015 Update 3抱怨说,
“GenerateVariableCodeFixProvider”遇到错误,已被禁用。
修复方法是将我的方法移回其相应的类定义中,但它确实带来了Visual Studio的bug。
具体来说,Visual Studio Intellisense已经看到了这行代码,
放置在类定义之外声明的方法中(即,在命名空间内,但无意中不在其类内)。然后,在我的编辑器窗口顶部的一个黄色条中显示了“'UniformureLabel' encountered an error and has been disabled”错误,旁边显示了一个“Enable”按钮和一个“Enable and ignore future errors”按钮。
我相信智能感知(或ReSharper?))尝试自动处理这种情况,并尝试为关键字“Response”生成一个变量,但它在尝试这样做时被绊倒了--这反过来又导致了显示的错误。
6za6bjd07#
有人在这里尝试这个解决方案吗?
https://developercommunity.visualstudio.com/content/problem/623872/add-import-not-working.html
最后的回答解决了我的问题。
Tools
>Options
>Text Editor
>C#
>Advanced
关闭
Suggest usings for types in NuGet packages
nle07wnf8#
Visual Studio 2022:
我已经解决了安装包>
Find and install latest version
的丢失DLL错误。首先,单击错误代码>
show potential fixes
(Alt+Enter或Ctrl+.)>安装软件包。请参见下面的截图: