Visual Studio CSharpAddImportCodeFixProvider遇到错误,已被禁用

z6psavjg  于 12个月前  发布在  其他
关注(0)|答案(8)|浏览(236)

我让人给我的电脑重新做了镜像。我的计算机上安装了Visual Studio Version 14.0.25123.00 Update 2。当我尝试使用VS intellisense引用另一个项目时,我得到了这个错误。
CSharpAddImportCodeFixProvider遇到错误,已被禁用
我有两个项目。其中一个使用命名空间ProjectName.Web。另一个项目使用ProjectName.Web.Controllers。当我引用ProjectName.Web.Controllers时,提供程序崩溃了,我相信这是因为它是作为一个项目设置的。有办法解决吗

avkwfej4

avkwfej41#

我在VS-2015更新3上遇到了同样的问题。
我做的是:
1)正在关闭visual studio
2)以管理员身份重新启动

rwqw0loc

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-Errors

pcww981p

pcww981p3#

发生此错误的原因可能有多种。因此,这个答案可能并不适用于所有情况,尽管它似乎只发生在引用另一个项目时。
并非所有语句都发生此错误。在我的例子中,我有以下代码:

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)测试过了。
--更新--
我已经将此作为bug报告给Microsoft。包括繁殖的步骤。

w8f9ii69

w8f9ii694#

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

using System.Data.SqlClient;

不知道这是否是某种bug,因为它发生在我使用Visual Studio 2019社区创建的新空白项目上
希望它能帮助某人

roejwanj

roejwanj5#

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

mrphzbgm

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已经看到了这行代码,

Response.Write("I did something");

放置在类定义之外声明的方法中(即,在命名空间内,但无意中不在其类内)。然后,在我的编辑器窗口顶部的一个黄色条中显示了“'UniformureLabel' encountered an error and has been disabled”错误,旁边显示了一个“Enable”按钮和一个“Enable and ignore future errors”按钮。
我相信智能感知(或ReSharper?))尝试自动处理这种情况,并尝试为关键字“Response”生成一个变量,但它在尝试这样做时被绊倒了--这反过来又导致了显示的错误。

6za6bjd0

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

nle07wnf

nle07wnf8#

Visual Studio 2022:

我已经解决了安装包> Find and install latest version的丢失DLL错误。
首先,单击错误代码> show potential fixes(Alt+Enter或Ctrl+.)>安装软件包。
请参见下面的截图:

相关问题