CSharpAddImportCodeFixProvider a rencontré une erreur et a été désactivé

j'ai fait réimager mon PC pour moi. J'ai Visual Studio Version 14.0.25123.00 Update 2 installé sur mon ordinateur. J'obtiens cette erreur quand j'essaie d'utiliser VS intellisense pour faire référence à un autre projet.

CSharpAddImportCodeFixProvider a rencontré une erreur et a été désactivé

j'ai deux projets. L'un d'entre eux à l'aide de l'espace de noms ProjectName.Web. Et l'autre projet utilisant ProjectName.Web.Controllers. Le fournisseur se bloque lorsque je de référence ProjectName.Web.Controllers, je crois parce que il est configuré comme un projet. Une idée de comment résoudre ce problème?

15
demandé sur jessehouwing 2016-04-27 23:05:25

3 réponses

j'ai eu le même problème sur VS-mise à jour 2015 3.

Je n'ai fait :

1) Fermeture de visual studio

2) redémarrage en tant qu'administrateur

3
répondu Auronmatrix 2016-12-03 12:00:31

Il peut y avoir plusieurs raisons pour lesquelles cette erreur se produit. Il se peut donc que cette réponse ne s'applique pas à toutes les situations, bien qu'il semble qu'elle ne se produise que lorsqu'un autre projet est mentionné.

L'erreur ne se produit pas pour tous les états. Dans mon cas, j'avais le code suivant:

private System.Threading.Timer Timer;

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

dès qu'intellisense ouvrirait pour Timer.Change( l'erreur s'est produite. Veuillez noter que je n'avais aucun paramètre à ce moment-là. Si les paramètres valides sont présents, il n'y aura pas erreur.

je pourrais résoudre le problème par mise à jour de la version du framework. J'ai découvert que les deux projets ciblaient des cadres différents. 4.5.2 4.6.

tant que les versions du framework sont différentes, l'erreur se produit. Dès que les deux sont égaux (4.5.2 ou 4.6) l'erreur ne s'affiche plus.

J'ai testé ceci avec VisualStudioVersion = 14.0.25420.1 (Visual Studio Community 2015).

-- mise à jour --

Je l'ai signalé comme un bug à Microsoft. Y compris les étapes à reproduire.

1
répondu Ruard van Elburg 2017-06-07 14:02:15

A en juger par l'étiquette qui vous a été donnée, "CSharpAddImportCodeFixProvider", je suppose que votre problème était dû au fait que Visual Studio essayait d'identifier et/ou de corriger une déclaration "using" manquante en haut de votre fichier de code source C# dans laquelle vous faisiez référence à une classe qui en avait besoin. Les composants de Visual Studio qui traitent habituellement ce type de problème sont Intellisense, ou des plugins de mise en évidence/correction de syntaxe de tiers comme le ReSharper de JetBrains.

Sur la deuxième pensée, je suis pas tout à fait sûr que ce soit la faute D'Intellisense par opposition au plugin ReSharper. C'est à déterminer.

j'ai déposé un rapport de bogue similaire avec Microsoft. L'erreur dans mon cas semblait être le résultat de L'Intellisense ne sachant pas comment traiter une erreur de logique dans mon propre code (voir https://connect.microsoft.com/VisualStudio/feedback/details/3133049).

dans mon cas, j'avais par inadvertance placé le code pour une méthode en dehors de sa définition de classe, bien que à l'intérieur de son même nom d'espace de noms. Visual Studio 2015 Update 3 s'est plaint,

'GenerateVariableCodeFixProvider' a rencontré une erreur et a été désactivée.

le correctif était de replacer ma méthode dans sa définition de classe correspondante, mais il a définitivement ramené un bug Visual Studio à la surface.

spécifiquement, Visual Studio Intellisense avait vu la ligne de code,

    Response.Write("I did something"); 

placé dans une méthode qui a été déclaré en dehors d'une définition de classe (i.e., à l'intérieur d'un espace de noms, mais par inadvertance pas à l'intérieur de sa classe). L'erreur"' FeatureLabel ' a rencontré une erreur et a été désactivée "a ensuite été affichée dans une barre jaune en haut de la fenêtre de mon éditeur et un bouton" Enable "et un bouton" Enable and ignore future errors " ont été affichés à côté.

je crois que Intellisense (ou ReSharper?) a essayé de traiter automatiquement avec la situation et a tenté de générer une variable pour le mot-clé, "réponse", mais il a trébuché en essayant de le faire--ce qui à son tour causé l'erreur qui a été affichée.

0
répondu ShieldOfSalvation 2017-04-26 14:32:47