Visual Studio affichant des erreurs même si les projets sont générés

265

J'ai un problème avec Visual Studio sur une solution C #. Il affiche des erreurs totalement aléatoires, mais les projets se construisent. À l'heure actuelle, j'ai 33 fichiers avec des erreurs et je peux voir des lignes rouges ondulées dans chacun d'eux.

J'ai essayé de nettoyer / reconstruire la solution, de fermer Visual Studio et même de redémarrer mon ordinateur. J'ai également veillé à effectuer les étapes décrites dans Débogage s'exécute même avec les erreurs du compilateur dans Visual Studio. Je peux modifier les fichiers .cs et je vois les changements dans la solution.

Quelqu'un at-il une idée de pourquoi il fait ça?

GammaOmega
la source
3
Avez-vous installé ReSharper ou tout autre module complémentaire comme celui-ci? Ils peuvent également provoquer des lignes rouges ondulées.
user1908061
3
Essayez de supprimer les dossiers bin et obj de chaque projet.
Charlie Brown
Erreurs ou avertissements? Si le projet se construit, cela signifie que ce sont des avertissements. Désactivez tous les addons et voyez comment ça se passe.
Ehsan
Nous avons le même problème avec 2 de nos machines sur VS 2013 RC candidate. Aucun Resharper installé cependant. Le problème ici est que même s'il se construit sans problèmes, aucun intellisense ne fonctionnera car il ne peut pas «résoudre» les espaces de noms et les objets. Vraiment bizarre. Fonctionne parfaitement sur 5 autres machines.
Ryk
Les conflits non résolus dans Team Foundation Server peuvent également être à l'origine de ce problème. L'obtention de la dernière version peut signaler qu'elle a réussi et que tous les fichiers ont été mis à jour, mais ce n'est pas toujours vrai. Si vous accédez à Team Explorer> Modifications en attente> liste déroulante Actions> Résoudre les conflits et cliquez sur "Obtenir tous les conflits", il devrait vous indiquer s'il existe des conflits non résolus que vous devez corriger.
user2310967

Réponses:

325

Si vous disposez de ReSharper, essayez de vider le cache ReSharper:

Dans le menu, ReSharper> Options> Environnement> Général> Effacer les caches

et désactiver et réactiver ReSharper:

Dans le menu, Outils> Options> ReSharper> Général> Suspendre / Restaurer

GammaOmega
la source
182

L'effacement du cache de Resharper n'a pas aidé dans mon cas, a essayé de suspendre / restaurer et également de réparer Resharper, en utilisant le dernier téléchargement sur le site Web de JetBrains - aucun de ces éléments n'a aidé. C'est après que j'ai essayé de fermer / rouvrir VS, de redémarrer ma machine, de répéter, de construire / reconstruire et la combinaison de ceux-ci.

Il est intéressant de noter que la suspension de Resharper semblait résoudre le problème après le 2ème redémarrage de VS, mais c'était de retour après avoir activé Resharper <- J'ai essayé de faire cette séquence 2-3 fois pour garantir le modèle.

Quoi qu'il en soit, j'avais toujours des problèmes lorsque j'ai trouvé cet article:

J'ai donc supprimé le fichier .SUO caché au même niveau de dossier avec la solution, et cela a résolu comme par magie tous les rouges.

Remarque - pour Visual Studio 2015, le fichier .SUO se trouve dans le dossier caché .vs / [solution_name] / v14 .

Neolisk
la source
7
Les étapes Resharper n'ont pas fonctionné pour moi non plus, mais cela a fonctionné. Merci!
Justin Morgan
4
Votre solution l'a corrigé pour moi, après avoir redémarré Visual Studio. Merci! :)
Moulde
1
VS2015 - J'ai même eu 1 projet qui ne pouvait pas être construit mais je pouvais voir les erreurs qu'il aurait dû. Je n'ai pas eu à fermer VS. Il vous suffit de fermer la solution, de supprimer .suo et de rouvrir la solution. Problème résolu.
TTT
5
Fonctionne toujours avec VS2019, merci! Le fichier .suo se trouve dans .vs / [nom_solution] / v16.
Michael Armes
3
VS2019, j'ai supprimé le répertoire .vs, il a été recréé lors de la prochaine génération - l'erreur bidon a disparu.
Loren Pechtel
92

tldr; Déchargez et rechargez le projet problématique.

Quand cela m'arrive, j'ai (l'habitude) d'essayer de fermer VS et de le rouvrir. Cela a probablement fonctionné environ la moitié du temps. Lorsque cela ne fonctionnait pas, je fermais la solution, supprimais le fichier .suo (ou l'intégralité du dossier .vs) et rouvrais la solution. Jusqu'à présent, cela a toujours fonctionné pour moi (plus de 10 fois au cours des 6 derniers mois), mais c'est un peu fastidieux car certaines choses sont réinitialisées telles que votre mode de construction, votre projet de démarrage, etc.

Comme c'est généralement un seul projet qui a le problème, j'ai juste essayé de décharger ce projet et de le recharger, et cela a fonctionné. Ma taille d'échantillon n'est que de 1, mais elle est beaucoup plus rapide que les deux autres options, donc cela vaut peut-être la peine. Je soupçonne que cela fonctionne car il écrit dans le fichier .suo et corrige peut-être la partie corrompue qui provoquait le problème.

Remarque: cela semble fonctionner pour VS 2019, 2017 et 2015.

TTT
la source
7
" J'ai juste essayé de décharger ce projet et de le recharger, et cela a fonctionné. " J'ai l'impression de contribuer à un culte du fret, mais j'ai fini par charger et décharger (avec des nettoyages et des constructions aléatoires entre les deux), et j'ai finalement trouvé l'or. Si étrange. C'est avec VS 2017.
ruffin
2
@ruffin - hehe. Je pense que chaque réponse à cette question est un "culte du fret", mais je crois que la mienne est la plus rapide et la moins intrusive. ;)
TTT
1
La suppression de l'intégralité du dossier .vs l'a fait pour moi dans VS 2017 Community avec ReSharper
Pedro Martins Timóteo da Costa
3
Le déchargement et le rechargement ont également fonctionné pour moi dans VS 2019 CE
simonlchilds
1
La suppression du dossier .vs a fonctionné pour moi dans VS 2019 sans ReSharper, tout simplement VS. MERCI!!!
German Latorre
39

J'ai nettoyé la solution, fermé VS, rouvert, créé la solution et les lignes rouges non résolues ont été nettoyées et la construction a réussi.

pixel
la source
2
Ces étapes, exactement suivies, ont fonctionné pour moi. Le simple nettoyage et la construction ne fonctionneraient pas pour moi.
JasonCoder
2
Éteignez et rallumez ... vous pensez que je saurais essayer maintenant. +1
iandisme
Cela a résolu le problème! Mais qu'est-ce qui l'a causé à la première place!?
DiligentKarma
2
Je n'ai aucune idée. Je trouve que Visual Studio est l'IDE le plus instable que j'ai utilisé. Il continue de se bloquer, se bloque souvent et affiche de temps en temps des erreurs étranges. J'ai arrêté de compter les problèmes pour être honnête.
pixel
Suivre ces étapes exactes n'a pas résolu le problème pour moi (dans VS2015).
Tim
29

J'ai constaté que cela se produit fréquemment lors de l'utilisation de Git dans Visual Studio 2017, en changeant de branche là où il y a des changements de code dépendants . Même si le projet réussit à générer, il restera des erreurs dans la liste des erreurs.

Ces erreurs sont souvent des problèmes d'espace de noms et des références manquantes, même lorsque la référence de bibliothèque existe.

Résoudre:

  • Fermez Visual Studio
  • Supprimez le fichier {sln-root} .vs \ SlnName \ v15.suo (masqué)
  • Redémarrez Visual Studio
Rebecca
la source
Merci pour cette astuce. Il a résolu un problème pour nous avec VS 2017 (sans aucune mise à jour). FWIW, cela nous est arrivé après la suppression et le paiement d'une succursale qui avait été rebasée à distance.
Mike Atkisson
1
Bien que cette solution n'ait pas résolu mon problème, je pense que ce problème a commencé après avoir changé de branche avec des modifications non validées (parce que je devais les appliquer à une autre branche)
CularBytes
C'est exactement mon problème. Merci mon sauveur
Dinh Tran
@CularBytes Peut être utile de cacher les modifications avant de changer de branche. git stash, switch branch, git stash pop
Rebecca
18

J'ai essayé les 6 options, rien n'a fonctionné pour moi. La solution ci-dessous a résolu mon problème.

Fermer VS. Supprimez le dossier ".vs" masqué à côté de votre fichier de solution. Redémarrez VS et chargez la solution.

suresh t
la source
il semble y avoir une nouvelle cause à ce problème, et c'est la nouvelle solution à ce problème. Je connais 3 autres personnes qui aussi avec dans les jours où vous postez cela aussi tout d'un coup se sont heurtées à ce problème.
Gerrie Pretorius
J'ai dû faire la même chose que Moshi. Ne semble pas être un fichier .suo lors de l'exécution de VS 2019. On aurait pu penser qu'ils auraient résolu ce problème maintenant ... * grogner grogner grogner *
Mike Loux
Pour moi, bifurque aussi dans vs2017
Nejc Galof
1
@MikeLoux Jetez un oeil à la réponse de Neolisk et vous verrez qu'il a souligné que le fichier .suo est maintenant dans le dossier .vs, donc tout ce que vous devez faire est de supprimer ce fichier, pas le dossier entier. Non pas que ce soit particulièrement satisfaisant non plus!
Avrohom Yisroel
Avrohom - ce dernier morceau résume parfaitement. Non, ce n'est pas du tout très satisfaisant. Et, oui, je crois que j'ai finalement trouvé le dossier où vous et Neolisk l'avez signalé et que je l'ai fait les quelques fois où il s'est reproduit (pas aussi souvent, heureusement). Alors ... c'est quelque chose, je suppose. :-)
Mike Loux
12

J'ai eu un problème comme celui-ci où Intellisense ne semblait pas reconnaître l'existence d'un projet (beaucoup d'erreurs "impossible de trouver ce type", "cet espace de noms n'existe pas", etc.).

La suppression et l'ajout de la référence de projet dans tous les projets de référence résoudraient le problème, mais la cause sous-jacente pourrait être corrigée en modifiant le fichier .proj du projet problématique.

Près du haut du fichier .csproj du projet "manquant" se trouve un élément:

<ProjectGuid>{GUID}</ProjectGuid>

et dans tous les projets de référence, les fichiers .csproj étaient des références de projet:

<ProjectReference Include="..\OffendingProject\OffendingProject.csproj">
  <Project>{ANOTHER-GUID}</Project>
  <Name>Offending Project</Name>
</ProjectReference>

Le GUID de référence ne correspond pas au GUID du projet. Remplacer {GUID}ci-dessus par {ANOTHER-GUID}fixe le problème sans avoir à passer par chaque projet de référencement.

Philip C
la source
Cela a fonctionné pour moi même s'il s'agissait d'un paquet de pépites. Je me suis assuré que le chemin restait relatif dans le fichier .csproj (littéralement rien n'a changé dans le TFS DIFF), mais cela a rendu VS2017 STFU sur les erreurs inexistantes.
BrainSlugs83
1
Je n'ai eu qu'à rajouter une seule référence de projet et toutes les références de problème rafraîchies
robaudas
Aucune des autres solutions n'a fonctionné pour moi, celle-ci a fait l'affaire :)
Pablo Carrasco Hernández
12

Voici une collection de réponses populaires. Votez le PO de la réponse si cela vous a aidé:

Option 1: nettoyer, créer et actualiser ( option @Mike Fuchs )

Comme l'a mentionné @Mike Fuchs , essayez les opérations suivantes:

Dans le menu, Build> Clean Solution

Et

Dans le menu, Build> Build Solution

et sélectionnez le projet en question, puis cliquez sur le bouton Actualiser:

Bouton Actualiser

Option 2: nettoyer, fermer, redémarrer et créer ( option @Pixel )

Comme @Pixel l'a mentionné, essayez la séquence d'opérations suivante:

  1. Nettoyez la solution
  2. Fermez Visual Studio
  3. Ouvrez Visual Studio
  4. Créer une solution

Option 3: vider le cache ReSharper ( option @GammaOmega )

Si vous disposez de ReSharper, essayez de vider le cache ReSharper:

Dans le menu, ReSharper> Options> Environnement> Général> Effacer les caches

et désactiver et réactiver ReSharper:

Dans le menu, Outils> Options> ReSharper> Général> Suspendre / Restaurer

Option 4: supprimer le fichier .suo ( option @Neolisk )

Comme l'a mentionné @Neolisk , la suppression du fichier .suo pourrait résoudre votre problème. Pour Visual Studio 2015, le fichier se trouve dans:

[Chemin de la solution] /. Vs / [Nom de la solution] /v14/.suo

Et pour Visual Studio 2017:

[Chemin de la solution] /. Vs / [Nom de la solution] /v15/.suo

Notez que le répertoire .vs est masqué.

Option 5: décharger et recharger le projet ( @TTT option )

Comme @TTT l'a mentionné, essayez de décharger le projet qui pose problème:

Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le projet, Décharger le projet.

Et le recharger

Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le projet, recharger le projet.

Option 6: supprimer et ajouter une référence Microsoft.CSharp ( @Guilherme option )

Comme @Guilherme l'a mentionné, essayez de supprimer et d'ajouter la référence à "Microsoft.CSharp" des projets qui rencontrent des problèmes.

Dans l'Explorateur de solutions, développez le projet, développez "Références", cliquez avec le bouton droit sur "Microsoft.CSharp" et supprimez.

Ensuite, faites un clic droit sur Références> Ajouter une référence, sélectionnez "Microsoft.CSharp" dans la liste et cliquez sur OK

GammaOmega
la source
L'option 6 l'a fait. J'ai dû cliquer sur le lien @Guilherme pour voter, car il est (maintenant?) Dans une autre question.
gbarry
Rien de ce qui précède n'a fonctionné pour moi, ayant plus de 80 projets en solution
Efe
10

Supprimez le chemin du fichier caché = votre solution \ .vs \ votre solution Nom \ v15 \ .suo

NoXSaeeD
la source
1
travaillé pour moi aussi. VS 2019. Les projets WPF continuaient de montrer des erreurs concernant les contrôles inexistants, mais fonctionnaient très bien.
Flemming Bonde Kentved
6

pour VS-2017, la suppression du dossier .vs a fonctionné pour moi.

Romesh D. Niriella
la source
5

J'ai remarqué que parfois lors du changement de branche git, Visual Studio (2017) ne reconnaît pas les types de certains fichiers qui avaient été ajoutés dans la deuxième branche. La suppression du dossier .vs le résout, mais il supprime également tous les paramètres de votre espace de travail. Cette astuce semble bien fonctionner pour moi:

  1. Explorateur de solutions -> Recherchez le fichier contenant la classe non reconnue.
  2. Cliquez sur Afficher tous les fichiers en haut de l'explorateur de solutions.
  3. Cliquez avec le bouton droit sur le fichier -> Exclure du projet.
  4. Cliquez de nouveau avec le bouton droit sur le fichier -> Inclure dans le projet.

Cela oblige Intellisense à analyser le fichier qu'il a manqué lors du changement de branche.

Erik
la source
4

La solution suivante a fonctionné pour moi

1 - Fermer VS

2 - Supprimer le dossier .vs

3 - Open VS

4 - Créer une solution

Vijay Hugar
la source
3

Vous essayez peut-être de réinitialiser votre cache intellisense. J'ai rencontré un problème similaire dans Visual Studio 2012 lorsque je travaillais dans un grand projet avec de nombreuses définitions de classe partielles. La réduction des partiels a résolu le problème partiellement, en effaçant également le cache intellisense - pendant un certain temps.

Daniel Nachtrub
la source
3

Parfois, je dois faire un nettoyage personnalisé en parcourant tous les projets et en supprimant manuellement les dossiers "bin" et "obj". Pour les voir dans Visual Studio, vous devrez activer les fichiers et dossiers cachés pour chaque projet. Après cela, reconstruisez la solution.

Technobabble
la source
3

La suppression du .vsdossier a résolu mon problème.

Mais cela a également réinitialisé les paramètres actuels de ma solution dans VS. Comme, mes projets déchargés dans la solution ont été rechargés et tous les documents épinglés et ouverts ont également été fermés lorsque j'ai redémarré le VS.

Usman Farooq
la source
2

0 - Clic droit sur la solution et solution propre

1 - Fermer VS

2 - Supprimer le fichier .suo du projet

3 - Open VS

4 - Créer une solution

nPcomp
la source
2

Un de mes collègues a connu ce problème aujourd'hui. Nous avons essayé de nombreuses recommandations ici et aucune n'a fonctionné, sauf la solution décrite ci-dessous.

Problème:

Le projet se construit correctement, mais Intellisense ne reconnaît pas certains types et marque certaines usingdéclarations comme non valides.

Solution:

Modifiez la `` Plateforme de solutions '' (dans VS 2017, c'est la liste déroulante à côté de la liste déroulante Configuration de la solution et a des valeurs telles que x86, x64, AnyCPU, plates-formes mixtes, etc.) en AnyCPU .

La plate-forme de votre projet peut varier, mais il semble que certaines références ne soient pas valides pour toutes les plates-formes.

AperioOculus
la source
1

Pour mon cas spécifique, c'était une référence de service qu'un autre développeur a fusionné dans la branche principale. Ce qui était parfaitement correct, sauf que la mise en évidence de la syntaxe n'a pas réussi à résoudre la classe de service générée et que la source a été soulignée en rouge. Le nettoyage, la reconstruction, le redémarrage n'ont rien fait.

Tout ce que j'avais à faire était de rafraîchir la référence de service et VS a réussi à rassembler les pièces dans les coulisses. Aucune modification dans le code source ou les fichiers générés.

Fjarskiptagervitungl
la source
1

Je viens de rencontrer ce problème après avoir rétabli un commit git qui a ajouté des fichiers dans mon projet.

Le nettoyage et la reconstruction du projet n'ont pas fonctionné, même si j'ai fermé VS entre chaque étape.

Ce qui a finalement fonctionné, a été de renommer le fichier en quelque chose d'autre et de le modifier à nouveau. : facepalm:

KidCode
la source
1

Après avoir essayé toutes les options répertoriées, j'ai découvert une autre raison pour laquelle cela peut se produire. Si quelqu'un vous a envoyé le code source sous forme de zip ou si vous avez téléchargé un zip, Windows peut avoir bloqué tous les fichiers. 2 façons de résoudre ce problème:

Méthode 1:

Faites un clic droit sur le fichier Zip d'origine -> Cochez «Débloquer» -> Cliquez sur Appliquer

Méthode 2:

Si ce n'est pas une option, plutôt que d'ouvrir des propriétés sur chaque fichier du dossier de solution, ouvrez simplement Power Shell et débloquez récursivement en utilisant ce qui suit:

Get-ChildItem -Path 'C:\<ROOT FOLDER OF SOLUTION>\' -Recurse | Unblock-File
Conor Gallagher
la source
1
  1. fermez d'abord la solution.
  2. puis suppression du fichier de cache de solution (à l'emplacement C: \ Users \ Documents \ Visual Studio \ Backup Files / fichier de cache de projet)
  3. puis suppression du fichier .suo
  4. puis la solution s'ouvre et se construit.

J'espère résoudre votre problème

Mahfuz Morshed
la source
1

Avait ce problème au travail (exécutant VS2017). J'ai essayé toutes les réponses ici. Pas de joie.

Le projet se construirait très bien, mais se plaignait que les espaces / types de noms étaient introuvables. Des gribouillis rouges partout. Beaucoup d'erreurs dans la fenêtre Liste des erreurs.

Ma solution contenait 3 projets.

J'ai découvert que 3 des références de la bibliothèque NuGet pour l'un des projets étaient hors ligne. Consolidation des versions de bibliothèque référencées et Bingo.

J'espère que cela aide quelqu'un.

Brett.

Brett
la source
1

Décharger et recharger le projet a résolu ce problème.

Ankush Jain
la source
0

Parfois, si vous nettoyez simplement la solution, les erreurs disparaissent, mais elles peuvent éventuellement revenir après un certain temps ou lors de la prochaine génération.

meJustAndrew
la source
0

Ran dans ce problème avec un seul type non reconnu par Visual Studio qui a montré le squiggle rouge même si la solution a réussi. J'ai remarqué dans l'Explorateur de solutions que le fichier n'avait pas la flèche de développement à gauche qui montre les classes et les propriétés lors de l'expansion.

Le correctif consistait à exclure le fichier du projet et à enregistrer / générer ce qui produisait une erreur attendue, puis à inclure le fichier dans le projet et à enregistrer et créer.

Après avoir effectué ces étapes, Visual Studio a recommencé à reconnaître mon type. En regardant la différence dans git, il semble que le problème soit dû à des fins de ligne ne correspondant pas à la <Compile Include="..." />ligne de mon fichier .csproj.

Thorb
la source
0

dans mon cas, vs n'a jamais conservé les espaces de noms importés dans les propriétés du projet> références

quand j'ai essayé de les ajouter / vérifier à nouveau, je n'ai pas pu et vs a jeté une erreur et quand le projet enregistré vs s'est écrasé. Lorsque j'ai rouvert tous les espaces de noms importés standard (system.data etc ...) ont tous été cochés à nouveau et il reconnaissait alors tout sans erreur

m majordome
la source
0

TL; DR: effectuer une réinstallation propre de Visual Studio

Après avoir perdu plusieurs heures, je n'ai toujours pas pu le réparer pour Visual Studio 2017. J'ai ensuite installé Visual Studio 2019 PREVIEW et tout d'un coup, IntelliSense m'affiche à nouveau les membres des classes STL (ce qui n'est pas le cas avec Visual Studio 2017 ).

Donc, je suppose qu'il y a peut-être aussi quelque chose de mal avec Visual Studio lui-même (peut-être quelque chose dans le répertoire cache ou quelque chose en général sur votre PC qui n'est pas directement lié à une solution spécifique) qui peut être résolu par un re propre et complet -installation de Visual Studio. Je sais, c'est une "solution" stupide, mais dans mon cas, seule une nouvelle installation de Visual Studio (2019) a eu un effet.

Comme déjà mentionné, dans mon cas, seules les classes STL ont été affectées. IntelliSense n'afficherait pas leurs membres, ce qui est étrange. J'ai pensé que cela pourrait peut-être avoir quelque chose à voir avec les en-têtes précompilés. Quelque part, j'ai lu que la STL et le projet devraient être sur le même lecteur et les mettre sur le même devrait résoudre le problème. Mais aucune de ces voies n'a abouti.

j00hi
la source
0

J'ai constaté que cela peut se produire si le projet référencé cible une version plus élevée du cadre que le projet qui essaie de l'utiliser. Vous pouvez dire si c'est le problème en allant dans la fenêtre de sortie et en recherchant quelque chose de similaire à ceci:

La référence principale "my_reference" n'a pas pu être résolue car elle a été construite sur le framework ".NETFramework, Version = v4.7.2". Il s'agit d'une version supérieure à l'infrastructure actuellement ciblée ".NETFramework, Version = v4.7".

La solution est de changer le cadre cible de l'un ou l'autre des projets.

michaela112358
la source
0

Mes symptômes dans VS2019 étaient que je construisais avec quelques erreurs. Ensuite, je corrigerais les erreurs et la construction fonctionnerait, comme indiqué dans la fenêtre Sortie. Mais les fenêtres Erreurs affichaient toujours les anciennes erreurs. Je pourrais le faire très bien. La fermeture de VS2019 et la réouverture ont résolu le problème, mais seulement pendant un petit moment. Cela a commencé à se produire sur la version 16.4.3

Cette solution semble fonctionner pour moi:

Décochez Outils-> Option-> Projets et solutions-> Général-> Autoriser l'initialisation de projet parallèle

J'ai trouvé ce correctif enfoui dans les commentaires ici: https://developercommunity.visualstudio.com/content/problem/483450/vs-2019-intellisense-reports-compile-errors-when-r.html

Daniel Williams
la source
-1

Essayez de passer la souris sur les éléments soulignés. Il devrait normalement vous dire quel est le problème. Pour voir une liste de toutes les erreurs / avertissements, accédez à Affichage => Liste d'erreurs. Un tableau devrait s'ouvrir au bas de l'EDI avec toutes les erreurs / avertissements répertoriés.

ionutioio
la source
Il y a des lignes ondulées sous des classes aléatoires, mais je ne reçois aucune erreur dans la liste d'erreurs. De plus, les projets se construisent parfaitement. Il semble que ce soit lié à Intellisense.
GammaOmega