163 votes

"Aller à la définition" dans Visual Studio affiche uniquement les métadonnées

Je travaille dans un Projet Web dans Visual Studio 2008. Quand j'appuie sur la touche F12 (ou clic-droit et sélectionnez Aller À la Définition) de Visual Studio est toujours d'aller à la Méta-fichier de données au lieu d'aller à la source.

Certains Points:

  • Tout le code source est en C#, il n'y a pas de VB.Net
  • Tous les projets sont dans la même solution
  • Oui, tout est projet référence (coché et double-vérifié)
  • J'ai essayé de la Nettoyer/Reconstruction Approche de la Solution (au point même de compensation le répertoire Temp, Temporaire ASP.NET répertoire des Fichiers, etc.).

Quelqu'un d'autre a vu ce comportement et/ou de savoir comment résoudre ce problème?

73voto

pfunk Points 742

Eh bien, un autre développeur a trouvé la réponse. Le projet spécifique avec lequel nous avons eu un problème a été ajouté à l'origine en tant que référence de fichier, puis supprimé et ajouté en tant que référence de projet. Cependant, Visual Studio a conservé les deux dans le fichier csproj du site Web, ce qui est à l'origine du problème. Il est entré et a modifié manuellement le fichier csproj pour supprimer la référence du fichier au projet qui pose problème et tout est maintenant résolu.

49voto

Vadim Points 9146

Cela se produit lorsque vous n’ajoutez pas de référence en tant que projet mais que vous pointez sur une dll ou un exe à l’aide de l’onglet Parcourir de la boîte de dialogue Ajouter une référence. Si vous ajoutez une référence à l'aide de l'onglet Projets, vous devez accéder directement au code source lorsque vous sélectionnez Aller à la définition.

Cependant, si vous installez ReSharper , vous irez au code source même si vous avez ajouté votre référence à une dll / exe à l'aide de l'onglet Parcourir.

11voto

Andrew Points 16

Visual studio souffre souvent du problème de l'accès aux métadonnées plutôt qu'à votre projet si vous changez d'emplacement où vous construisez le projet, c'est-à-dire que vous pouvez avoir plusieurs versions pour tester les choses.

Supprimez simplement la référence et ajoutez-la immédiatement et tout sera trié.

8voto

Rich Points 41

L'marqué solution ne fonctionne pas toujours. Vous devez vous assurer que le projet référencé GUID dans les fichiers de projet est le GUID correct pour le projet que vous essayez de référence. Visual Studio permet de sortir de synchronisation dans certaines circonstances. Vous pouvez obtenir le projet GUID du fichier de projet avec un éditeur de texte. Donc, si le projet est Un projet de référence B. Ouvrir projet B. csproj dans l'éditeur de texte, copiez le cadre du projet GUID de la balise. Puis ouvrez le projet A. csproj dans l'éditeur de texte, et assurez-vous que vous utilisez le bon GUID. Recherche pour le nom de projet "B" dans ce cas. Il devrait être au . Remplacer le GUID dans la balise avec la bonne. Sauvegarder et recharger. Bien sûr, assurez-vous également de fichier de base de références pour vos projets sont supprimés. Vous voulez seulement les références de projet.

2voto

jiangping Points 11

J'ai trouvé comment résoudre mon problème de ce post, peut-être que ça fonctionnera aussi pour certains d'entre vous.

J'ai suivi ces étapes:

  1. Proche de la solution.
  2. Supprimer l'intellisense fichier de base de données pour la solution: .pne
  3. L'ouverture de la solution.
  4. Reconstruire la solution.

(Je crois que soit l'étape 3 ou 4 régénère l'intellisense fichier de base de données lorsqu'il est absent)

Intellisense, "aller à la définition" et "trouver toutes les références" devrait être à nouveau au travail.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X