web-dev-qa-db-ja.com

CSharpAddImportCodeFixProviderでエラーが発生し、無効になりました

PCのイメージを再作成してもらいました。コンピューターにVisual Studioバージョン14.0.25123.00 Update 2がインストールされています。 VSインテリセンスを使用して別のプロジェクトを参照しようとすると、このエラーが発生します。

CSharpAddImportCodeFixProviderでエラーが発生し、無効になりました

2つのプロジェクトがあります。名前空間ProjectName.Webを使用するものの1つ。そして、他のプロジェクトはProjectName.Web.Controllersを使用しています。 ProjectName.Web.Controllersを参照すると、プロバイダーがクラッシュします。プロジェクトとしてセットアップされているためです。これを修正する方法はありますか?

18
EGN

VS-2015 update 3でも同じ問題が発生しました。
私がしたこと:

1)クロージングビジュアルスタジオ

2)管理者として再起動

3
Auronmatrix

DataLayerのいずれかのリポジトリクラスでusing (SqlConnection...){}を入力した後、Add using System.Data.SqlClientを自動的に選択したときに私に起こりました。

何も助けにはなりませんでしたが(新しいプロジェクトの作成を除く)、問題はSystem.Data.SqlClient.dllファイルのロードにあることがわかりましたが、適切なフォルダーに存在していました。

試行錯誤の結果、DataLayerからDependencies->Assemblies->System.Data.SqlClientを削除した後(右クリック->削除、または選択時に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

1
Mladen Janjic

このエラーが発生する理由はいくつかあります。したがって、この答えはすべての状況に当てはまるわけではありませんが、別のプロジェクトが参照されている場合にのみ発生するようです。

エラーは、すべてのステートメントで発生するわけではありません。私の場合、次のコードがありました。

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)でこれをテストしました。

-更新-

これを バグ としてマイクロソフトに報告しました。再現手順を含みます。

1

ここからこの解決策を試す人はいますか?

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

0
Aicilec

あなたが与えられたラベル「CSharpAddImportCodeFixProvider」から判断すると、あなたの問題は、Visual Studioが参照を作成したC#ソースコードファイルの先頭にある「using」ステートメントを識別または修正しようとしたことが原因であったと思いますそれを必要とするクラスに。通常この種の問題を処理するVisual Studioコンポーネントは、Intellisense、またはJetBrainsのReSharperなどのサードパーティの構文の強調表示/修正プラグインです。

考え直してみると、プラグインReSharperとは対照的にIntellisenseのせいかどうかはよくわかりません。それは決定されることです。

同様のバグレポートをマイクロソフトに提出しました。私の場合のエラーは、Intellisenseが自分のコードの論理エラーに対処する方法を知らないために発生したようです( を参照してください)https://connect.Microsoft.com/VisualStudio/feedback/details/3133049 )。

私の場合、同じように名前が付けられた名前空間内にありますが、メソッドのコードをクラス定義の外にうっかり配置しました。 Visual Studio 2015 Update 3は不満を述べました、

「GenerateVariableCodeFixProvider」でエラーが発生したため無効になっています。

修正は、私のメソッドを対応するクラス定義に戻すことでしたが、Visual Studioのバグが表面化しました。

具体的には、Visual Studio Intellisenseはコードの行を見ていました。

    Response.Write("I did something"); 

クラス定義の外部で宣言されたメソッドに配置されました(つまり、名前空間の内部ですが、クラスの内部ではありません)。 「 'FeatureLabel'でエラーが発生し、無効になりました」というエラーがエディタウィンドウの上部にある黄色のバーに表示され、その横に[有効]ボタンと[有効にして今後のエラーを無視]ボタンが表示されました。

Intellisense(またはReSharper?)が状況を自動的に処理し、キーワード "Response"の変数を生成しようとしたが、そうしようとするとトリップし、表示されたエラーの原因になりました。

0

私はこれと同じエラーに終わります。私がやったことは、手動で行って、System.Data.SqlClientのnugetパケットを見つけてインストールし、次に、私が取り組んでいたクラスでそれを呼び出すことでした。

using System.Data.SqlClient;

これが何らかのバグかどうかわからない、ビジュアルスタジオ2019コミュニティを使用して作成した新しい空のプロジェクトで発生する

それが誰かを助けることを願って

0