J'ai soudainement commencé à rencontrer un problème aujourd'hui dans mon projet où cliquer sur Aller à la définition me donnait une étrange erreur: "Je ne peux pas accéder au symbole situé sous le curseur".
Je l'ai remarqué pour la première fois quelque temps après avoir installé Costura.Fody via NuGet. Je l'ai depuis désinstallé mais le problème persiste. J'ai nettoyé et reconstruit la solution plusieurs fois. Il n'y a pas d'exemples de "Fody" ou de "Costura" dans mon historique de commit git, avant ou après le moment où cela a commencé, alors je pense qu'un de mes fichiers .gitignore est bloqué dans un mauvais dossier. Etat.
Le problème ne se produit que si la définition visée est dans un autre fichier. Aller à la définition pour quelque chose dans le fichier actuellement ouvert fonctionne bien. Peek Definition fonctionne bien aussi. D’autres solutions/projets fonctionnent également bien - c’est seulement celui-ci qui pose problème.
J'utilise Visual Studio 2015. Le problème ne semble pas se produire dans la version 2013.
Pourquoi cette erreur se produit-elle et comment puis-je la réparer?
Ces derniers jours, j'ai eu cette erreur, au moins deux fois par jour .. vraiment ennuyeux! Aucune des solutions proposées ici n'a fonctionné pour moi. Ce que j'ai trouvé, et comme c'était assez difficile à trouver, je l'écris ici, c'est:
Disclaimer: J'utilise Xamarin
PRENEZ EN CONSIDÉRATION CE QUE @OzSolomon et @xCasper ont déclaré:
@OzSolomon
Sachez que cela réinitialisera bon nombre de vos personnalisations IDE, y compris les plugins installés.
Assurez-vous que vous êtes à l'aise avec cela avant d'utiliser/resetuserdata
@xCasper
Si vos paramètres sont synchronisés via Microsoft, toutefois, la plupart des préférences semblent se restaurer elles-mêmes. Je dis le plus parce qu'il semble que mes raccourcis clavier n'ont pas été restaurés et sont redevenus par défaut. Tout le reste, tel que mon choix de thème et de colorisation, la disposition de mon IDE (où j'ai des onglets par exemple) et tout ce qui semble ne pas revenir.
J'ai le même problème. J'ai fait toutes les étapes mentionnées dans tous les commentaires ci-dessus. Ça n'a pas marché. Mais lorsque j'ai fermé Visual Studio, le dossier ".vs" supprimé (dans le dossier de la solution) a ensuite rouvert Visual Studio. Cela fonctionne maintenant comme un charme. Le problème est parti.
J'ai essayé la solution de David (celle qui consiste à cliquer sur l'option Vider le symbole symbole), mais cela n'a pas fonctionné pour moi.
Comment l'ai-je résolu?
Pour moi, cette erreur n’a pas de sens, mais j’ai résolu le problème!
Je viens d'avoir le même problème et il semble qu'il y ait un problème avec VS 2015 et TFS. J'ai eu le problème après avoir fusionné certains fichiers dans une autre branche. J'ai essayé plusieurs choses et cela a fonctionné:
Je ne sais pas pourquoi cela se produit, mais cela a fonctionné pour moi. Cela vaut également la peine d'effacer le dossier TFSTemp comme mentionné par zvi.
EDIT
Ce chemin: %TMP%\TFSTemp
peut être copié-collé dans l’explorateur Windows pour accéder à TFS temp.
Ce qui suit a résolu ceci pour moi:
Une fois cette opération terminée avec succès, je n’ai plus reçu l’erreur et je n’ai rien eu à fermer ni à rouvrir.
Simplement fais-le:
Nettoyez vos symboles de cache (Outils> Options> Débogage> Symboles> EmptySymbolCache). Ouvrez votre solution en mode administratif.
cela a résolu mon problème.
La réponse ci-dessus est correcte, mais le chemin est légèrement désactivé, essayez plutôt ceci:
%AppData%\..\Local\Temp\TFSTemp
J'ai fait toutes les choses ci-dessus mais mon problème n'a pas résolu (essayer d'ouvrir le projet avant VS 2017),
après cela, j'ai réalisé que le problème était mon fichier csproj. Mon projet (mvc)
a été créé par VS 2015 ... Je modifie donc mon fichier csproj et le remplace
<Import Project="..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />
par ça :
<Import Project="..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.7\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.7\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />
Tout était à propos de la version de DotNetCompilerPlatform.
(D'après ce que j'ai compris, j'ai créé le nouveau projet mvc par VS 2017 et comparé les deux fichiers csproj - le nouveau et celui créé par VS 2015 -)
Informations connexes supplémentaires par https://stackoverflow.com/users/15667/xan (puisque les réponses sont verrouillées)
Pour moi (VS2019 ouvrant une ancienne solution), cela n’affectait que un projet dans la solution. Les importations ressemblaient à ceci:
<Import Project="..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />
<Import Project="..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props" Condition="Exists('..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" />
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
Les projets de travail avaient seulement la
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
ligne, alors j'ai supprimé les 2 premiers et intelisense/aller à la définition, etc. a commencé à fonctionner à nouveau.
TOUTEFOIS le projet Web ne s'exécute pas à cause du compilateur Roslyn csc manquant.
En fin de compte, la solution globale était de mettre à jour les packages Microsoft.CodeDom.Providers.DotNetCompilerPlatform
et Microsoft.Net.Compilers
Nuget du projet.
Couru dans ce problème en utilisant F12 pour essayer d'aller à une définition de méthode.
Tous les éléments mentionnés (à l'exception du /resetuserdata
- que je n'ai pas essayé car il serait difficile de récupérer) - ne fonctionnaient pas.
Qu'est-ce qui a fonctionné pour moi?
A partir d'une invite de commande, accédez au dossier de votre solution et exécutez le code suivant (cela supprime TOUS les dossiers bin et obj de votre solution):
FOR /F "tokens=*" %%G IN ('DIR /B /AD /S bin') DO RMDIR /S /Q "%%G"
FOR /F "tokens=*" %%G IN ('DIR /B /AD /S obj') DO RMDIR /S /Q "%%G"
Redémarrez Visual Studio. L'ouverture de la solution devrait prendre un peu plus de temps car elle reconstruit maintenant les dossiers obj.
Après avoir fait cela F12 a fonctionné!
En remarque, je le place normalement dans un fichier de commandes dans le dossier de ma solution, à côté du fichier .sln
. Cela facilite l'exécution plus tard!
Fermez Visual Studio, puis supprimez le nom de fichier caché .vs de ce projet et ouvrez à nouveau Visual Studio, puis générez le projet. Boom! Tout bon!
J'ai le même problème après la mise à jour de Visual Studio, voici donc comment résoudre le problème.
J'espère que cela sera utile pour tous ceux qui ont ce problème.
Récemment mis à niveau à VS 2017 15.5.0 et rencontré ce problème. J'ai essayé:
Malheureusement, rien de tout cela n'a fonctionné. J'ai remarqué que cela ne se produisait que sur certains projets et pas sur d'autres. Sur le projet où il échouait, j'ai basculé toutes les versions de la structure vers la version 4.7.1, procédé à un nettoyage/reconstruction et mon "Aller à la définition" a recommencé à fonctionner.
La plupart des chemins proposés par d'autres ne fonctionnent pas ou sont un peu en arrière.
Videz ce dossier:
%localappdata%\Temp\TFSTemp
Cela a fonctionné pour moi.
Je dirais que cela est dû au nouveau compilateur Roslyn C #. Dans son traqueur de problèmes github, vous pouvez trouver de nombreux développeurs rencontrant ce problème et essayant de le réparer, mais il est toujours ouvert: https://github.com/dotnet/roslyn/issues/9602
J'ai passé un peu de temps là-dessus également et j'ai perdu la bataille. Mais la solution suivante que j'ai trouvée fonctionne bien pour moi.
SOLUTION DE CONTOURNEMENT
Pour moi, cela semble fonctionner encore mieux que juste GoToDefinition, parce que:
Après avoir lu que ce problème particulier avait été résolu dans le compilateur roslyn ( voir ce problème sur GitHub ), j'ai mis à jour Visual Studio . de la version 15.0.x à 15.3.1. Cela fonctionne comme un charme maintenant.
Pour moi, la navigation ne fonctionne que sans solutions XAMARIN. Les suggestions ici NE FONCTIONNENT PAS. :( Devenv.exe/resetuserdata ne fonctionne pas pour moi.
Ma solution était la suivante: recréer les solutions, le projet, les dossiers et les travaux. Aucune importation. Détail: mon projet portait sur le VS 2015, l'erreur sur le VS 2017.
J'ai eu cette erreur pendant un certain temps maintenant jusqu'à ce que je ne puisse plus la supporter, alors j'ai essayé toutes les solutions possibles ci-dessus, mais aucune n'a fonctionné pour moi. J'ai remarqué que l'erreur n'apparaissait que sur un certain projet (comme ce qu'un utilisateur a mentionné ci-dessus), mais pas sur d'autres projets. À cause de cela, comme rien ne fonctionne, j'ai à nouveau cloné mon projet sur un dossier différent et il a recommencé à fonctionner.
Après avoir effectué "devenv.exe/resetuserdata", mon VAssistX échoue. En fait, cela me rappelle que VAssistX peut résoudre le problème en mettant en œuvre Goto Implementation (Alt + G).
Ce qui suit a fonctionné pour moi comme un charme:
Si vous avez récemment installé un complément, envisagez de le désinstaller. C'est ce qui a fonctionné pour moi.
essayez de nettoyer la solution ou nettoyez votre projet, cela a fonctionné pour moi
Je suis aussi tombé sur cette fois. Il y a quelque chose qui ne va pas avec TFS dans VS 2015.
J'ai suivi ces étapes et cela a fonctionné
Cache TFS effacé Ceci pourrait être ici:
C:\Utilisateurs\(Nom d'utilisateur)\AppData\Local\Microsoft\Fondation de l'équipe\(Version)\Cache
Remarque: le chemin peut varier en fonction du système d'exploitation, alors ne m'en voulez pas.
Cache de symboles vide
Outils> Options> Débogage> Symboles> EmptySymbolCache
Visual Studio redémarré (il se peut que vous souhaitiez à nouveau vous connecter à TFS)
Cela a fonctionné pour moi :)
Ce bogue étrange m'est arrivé lors de l'importation d'un projet Xamarin dans VS15. Aucune des solutions énumérées ici ne fonctionnait pour moi. Après une journée de frustration, j’ai également rencontré un problème similaire à celui-ci: "Visualiser" dans Visual Studio entraîne "Aucun fichier n’a été trouvé. Recherche a progressé."
Lorsque vous cliquez sur "Tout trouver" dans la boîte de dialogue de recherche, une fenêtre contextuelle m'informe que les autres fichiers ne peuvent pas être recherchés. J'ai donc pensé que la raison pour laquelle "aller à la définition" ne fonctionnait pas était due au même bogue, car la recherche de définitions dans le même fichier fonctionnait.
la solution étrange dans le lien ci-dessus (en appuyant sur Ctrl + Verrou défilement ou Ctrl + Pause plusieurs fois) a résolu les deux problèmes pour moi.
La coloration du code (qui ne fonctionnait pas lorsque la fonctionnalité "Aller à la définition" a été interrompue) est également immédiatement revenue.
Solution propre. Restaurer les paquets de nuget.
Mon problème était que j'ai (semi-accidentellement) changé la propriété Build action
du fichier .cs problématique en Content
. Remettre à Compile
a fait le tour, ce qui est logique.
J'utilise VS 2017 15.7.5 et cela a cessé de fonctionner pour certains fichiers de test. J'ai remarqué qu'ils étaient tous les nouveaux que j'avais récemment ajoutés et que, dans l'Explorateur de solutions, aucune flèche n'était disponible pour se développer et voir les propriétés/méthodes.
J'ai exclu et ensuite ré-inclus dans le projet et la commande go to definition a de nouveau fonctionné.
J'ai également fait face au même problème et "Trouver toutes les références" pour la classe sélectionnée a résolu ce problème.