21

我让我的电脑为我重新成像。我的计算机上安装了 Visual Studio 版本 14.0.25123.00 Update 2。当我尝试使用 VS intellisense 引用另一个项目时出现此错误。

CSharpAddImportCodeFixProvider 遇到错误并已被禁用

我有两个项目。其中之一使用命名空间ProjectName.Web。而另一个项目使用ProjectName.Web.Controllers. 提供者在我引用时崩溃ProjectName.Web.Controllers,我相信是因为它是作为一个项目设置的。知道如何解决这个问题吗?

4

7 回答 7

5

我在 VS-2015 更新 3 上遇到了同样的问题。
我所做的是:

1) 关闭视觉工作室

2)以管理员身份重启

于 2016-12-03T11:18:04.667 回答
2

在存储库类之一中Add using System.Data.SqlClient键入 DataLayer 后自动选择时发生在我身上。using (SqlConnection...){}

没有任何帮助(除了创建新项目),但我发现问题在于加载System.Data.SqlClient.dll文件,尽管它存在于适当的文件夹中。

通过反复试验发现,Dependencies->Assemblies->System.Data.SqlClient从 DataLayer 中删除后(右键单击 -> 删除,或者选择时只需按 Delete 键),我可以添加System.Data.SqlClient而不会出现任何错误。

没有尝试其他CSharpAddImportCodeFixProvider encountered an error and has been disabled出现消息的情况,但解决方案可能类似。

在我的情况下,问题出现可能是由于.net核心版本冲突或类似原因,因为该项目位于外部驱动器上并在另一台计算机上创建。

编辑:此外,解决方案文件夹中的 .vs 文件夹(默认隐藏)可能会导致一些错误,尤其是在项目在不同计算机之间移动时。我从经验中知道,IntelliSense 似乎已损坏,尽管using namespace_name存在声明,但来自其他命名空间的类将不可用。解决方案是删除 .vs 文件夹或只是避免将其与项目一起复制,如下所示:https ://weblog.west-wind.com/posts/2018/Aug/07/Fixing-Visual-Studio-Intellisense-Errors

于 2019-03-20T18:02:27.050 回答
1

我最终遇到了同样的错误。我所做的是手动查找 System.Data.SqlClient 的 nuget 数据包,安装然后在我正在处理的类中调用它,例如:

using System.Data.SqlClient;

不知道这是否是某种错误,因为它发生在我使用 Visual Studio 2019 社区创建的新空白项目中

希望它可以帮助某人

于 2020-02-04T21:50:20.927 回答
1

通过从 nuget 包管理器安装 sqlClient 包解决了同样的问题,右键单击项目选择管理 nuget 包。然后转到浏览选项卡并搜索 System.Data.SqlClient 并安装它。很容易:)

于 2020-07-04T12:25:25.207 回答
1

发生此错误的原因可能有多种。所以这个答案可能并不适用于所有情况,尽管它似乎只在引用另一个项目时发生。

并非所有语句都发生该错误。就我而言,我有以下代码:

private System.Threading.Timer Timer;

public void Start()
{
    Timer.Change(0, 60000);
}

一旦Timer.Change(发生错误,智能感知就会打开。请注意,我当时没有参数。如果存在有效参数,则不会出现错误。

我可以通过更新框架的版本来解决这个问题。我发现这两个项目分别针对不同的框架。4.5.2 和 4.6。

只要框架版本不同,就会发生错误。一旦两者相等(4.5.2 或 4.6),错误就不再显示。

我已经使用 VisualStudioVersion = 14.0.25420.1 (Visual Studio Community 2015) 对此进行了测试。

- 更新 -

我已将此作为错误报告给 Microsoft。包括重现的步骤。

于 2017-06-07T11:48:17.853 回答
0

有人从这里尝试这个解决方案吗?

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

于 2019-10-23T04:12:15.540 回答
0

从您获得的标签“CSharpAddImportCodeFixProvider”来看,我猜您的问题是由于 Visual Studio 试图识别和/或更正您引用的 C# 源代码文件顶部缺少的“使用”语句到需要它的班级。通常处理此类问题的 Visual Studio 组件是 Intellisense,或第三方语法高亮/纠正插件,如 JetBrains 的 ReSharper。

再想一想,我不太确定这是 Intellisense 的错,而不是 ReSharper 插件的错。这是有待确定的。

我确实向 Microsoft 提交了类似的错误报告。我的错误似乎是由于 Intellisense 不知道如何处理我自己的代码中的逻辑错误(请参阅https://connect.microsoft.com/VisualStudio/feedback/details/3133049)。

在我的例子中,我无意中将一个方法的代码放在了它的类定义之外,尽管在它类似命名的命名空间内。Visual Studio 2015 更新 3 抱怨,

“GenerateVariableCodeFixProvider”遇到错误并已被禁用。

解决方法是将我的方法移回其相应的类定义中,但它肯定会导致 Visual Studio 错误浮出水面。

具体来说,Visual Studio Intellisense 已经看到了这行代码,

    Response.Write("I did something"); 

放置在在类定义之外(即,在名称空间内,但无意中不在其类内)声明的方法中。“'FeatureLabel' 遇到错误并已被禁用”错误随后显示在我的编辑器窗口顶部的黄色栏中,旁边显示“启用”按钮和“启用并忽略未来错误”按钮。

我相信 Intellisense(或 ReSharper?)试图自动处理这种情况并试图为关键字“Response”生成一个变量,但它试图这样做却失败了——这反过来又导致了显示的错误。

于 2017-04-26T14:32:47.337 回答