web-dev-qa-db-fra.com

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

J'ai eu mon PC re-imagé pour moi. Visual Studio version 14.0.25123.00 Update 2 est installé sur mon ordinateur. Je reçois cette erreur lorsque 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'eux utilise namespace ProjectName.Web. Et l'autre projet utilisant ProjectName.Web.Controllers. Le fournisseur se bloque lorsque je fais référence à ProjectName.Web.Controllers, je crois, car il est configuré en tant que projet. Une idée comment résoudre ce problème?

15
EGN

J'ai eu le même problème sur VS-2015 update 3. 
J'ai fait était: 

1) Fermeture du studio visuel 

2) redémarrage en tant qu'administrateur

3
Auronmatrix

Il peut y avoir plusieurs raisons pour lesquelles cette erreur se produit. Cette réponse peut donc ne pas s’appliquer à toutes les situations, bien qu’il semble que cela ne se produise que lorsqu’un autre projet est référencé.

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

private System.Threading.Timer Timer;

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

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

Je pourrais résoudre le problème en en mettant à jour la version du framework . J'ai découvert que les deux projets ciblaient des cadres différents, resp. 4.5.2 et 4.6.

Tant que les versions de la structure 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é cela avec VisualStudioVersion = 14.0.25420.1 (Visual Studio Community 2015).

-- mettre à jour --

J'ai signalé ceci comme un bug à Microsoft. Y compris les étapes pour reproduire.

1
Ruard van Elburg

À en juger par l'étiquette qui vous a été attribuée, "CSharpAddImportCodeFixProvider", je suppose que votre problème est dû à Visual Studio qui a essayé d'identifier et/ou de corriger une instruction "using" manquante en haut de votre fichier de code source C # auquel vous avez fait référence. à une classe qui en avait besoin. Les composants Visual Studio qui traitent généralement de ce type de problème sont Intellisense, ou des plug-ins de coloration/correction syntaxique tiers, tels que ReSharper de JetBrains.

À la réflexion, je ne 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 résulter du fait que Intellisense ne savait 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é du code pour une méthode en dehors de sa définition de classe, mais à l'intérieur de son espace de nom similaire. Visual Studio 2015 Update 3 s'est plaint, 

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

Le correctif consistait à ramener ma méthode dans la définition de classe correspondante, mais cela a certainement amené un bogue Visual Studio à la surface. 

Plus précisément, Visual Studio Intellisense avait vu la ligne de code, 

    Response.Write("I did something"); 

placé dans une méthode déclarée en dehors d’une définition de classe (c’est-à-dire dans un espace de noms, mais par inadvertance pas dans sa classe). Le "" FeatureLabel "a rencontré une erreur et a été désactivé" erreur a ensuite été affichée dans une barre jaune en haut de ma fenêtre de l'éditeur et un bouton "Activer" et un bouton "Activer et ignorer les erreurs futures" ont été affichés à côté de lui.

Je pense qu'Intellisense (ou ReSharper?) A essayé de gérer automatiquement la situation et a tenté de générer une variable pour le mot clé "Réponse", mais a tenté de le faire, ce qui a provoqué l'erreur affichée. 

0
ShieldOfSalvation