CSharpAddImportCodeFixProvider遇到错误并被禁用

时间:2016-04-27 20:05:25

标签: c# visual-studio roslyn-code-analysis visual-studio-2017

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

  

CSharpAddImportCodeFixProvider遇到错误并已被禁用

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

7 个答案:

答案 0 :(得分:3)

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

1)关闭视觉工作室

2)以管理员身份重新启动

答案 1 :(得分:1)

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

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

private System.Threading.Timer Timer;

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

只要intellisense打开Timer.Change(,就会发生错误。请注意,那时我没有参数。如果存在有效参数,则不会出现错误。

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

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

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

- 更新 -

我已将此报告为Microsoft的bug。包括重现的步骤。

答案 2 :(得分:1)

通过从nuget软件包管理器安装sqlClient软件包解决了相同的问题 右键单击该项目,选择管理nuget程序包。然后转到浏览选项卡并搜索System.Data.SqlClient并安装它。这么简单:)

答案 3 :(得分:0)

从您给出的标签“CSharpAddImportCodeFixProvider”判断,我猜你的问题是由于Visual Studio试图识别和/或纠正C#源代码文件顶部缺少的“使用”语句,其中你引用了一个需要它的类。通常处理此类问题的Visual Studio组件是Intellisense,或者像JetBrains的ReSharper一样的第三方语法高亮/校正插件。

第二个想法,我不太确定它是Intellisense的错,而不是插件ReSharper的错。那是有待确定的。

我确实向微软提交了类似的错误报告。我的案例中的错误似乎是Intellisense不知道如何在我自己的代码中处理逻辑错误的结果(参见https://connect.microsoft.com/VisualStudio/feedback/details/3133049)。

就我而言,我无意中为其类定义之外的方法放置了代码,尽管在其类似命名的命名空间中。 Visual Studio 2015 Update 3抱怨,

  

'GenerateVariableCodeFixProvider'遇到错误并且一直存在   禁用。

修复方法是将我的方法移回到相应的类定义中,但它确实将Visual Studio错误带到了表面。

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

override func viewDidLoad() {
    super.viewDidLoad()

    header_one.height = 1.8
    header_two.height = 1.2
}

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

我相信Intellisense(或ReSharper?)试图自动处理这种情况,并试图为关键字“响应”生成一个变量,但它试图这样做绊倒 - 这反过来导致错误显示。

答案 4 :(得分:0)

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

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

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

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

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

答案 5 :(得分: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

答案 6 :(得分:0)

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

service.userDeletion().userDeletionRequest().upsert(...).execute()

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

希望它对某人有帮助