2009-11-20 5 views
2

Je travaille sur un assez grand (je pense - est de 32 projets gros?) Multi-projet 'solution' dans Visual Studio 2008. Parce que c'est un système hérité, le code est principalement C < gasp! >, bien que je ne pense pas que ce soit pertinent à ma question. Récemment (mais je ne sais pas comment récemment), j'ai remarqué que mes informations de navigation - l'installation VS qui permet de «Go To Definition» et «Go To Declaration» d'une macro, fonction, variable , etc. - n'est pas mis à jour. Je vais essayer 'Go To Definition' sur quelque chose et soit l'IDE me dira que "Le symbole '' n'est pas défini" ou, si c'est quelque chose que j'ai déplacé, ira vers le bon fichier mais dans le mauvais place.Pourquoi les informations de navigation dans Visual Studio 2008 cessent-elles d'être mises à jour?

J'ai essayé de créer des informations de navigation pour tous les projets de la solution, mais cela n'a pas aidé. Puis je lis sur MSDN que je devrais pas faire cela, mais devrait, à la place, Après tous les projets sont construits, exécutez BSCMAKE avec tous les fichiers .sbr comme entrée. (Je crois, mais je ne suis pas sûr que les fichiers .sbr sont automatiquement lorsque les fichiers sont compilés.)

Je devine que c'est cette étape, ( course BSCMAKE avec tous les fichiers .sbr) cela ne se produit pas, mais je ne sais pas où trouver le paramètre, s'il y en a un, qui le contrôle pour l'ensemble de la solution (plutôt qu'un projet à la fois).

Existe-t-il un autre fichier (que le fichier .bsc) dans lequel VS obtient ces informations? (En d'autres termes, est-ce que j'aboie complètement le mauvais arbre)?

Répondre

4

Avez-vous essayé de supprimer le fichier IntelliSense (.ncb) qui se trouve juste à côté de votre fichier de solution (.sln)? Car, le fichier .ncb peut être corrompu. Vous pouvez en savoir plus sur la question here

La plupart du temps, lorsque vous obtenez "Le symbole n'est pas défini" c'est parce qu'il manque un #include dans le fichier source. Assurez-vous qu'il est présent et que vous pouvez l'ouvrir.

De même, les définitions et les macros peuvent provoquer des erreurs dans IntelliSense. Des changements dans votre code récemment?

Il n'y a pas de paramètres pour activer BSCMAKE à ma compréhension. Vous devez appeler la commande lorsque vous avez terminé la compilation.

+1

J'ai effacé le.fichier ncb et (après avoir laissé Intellisense le reconstruire pendant un certain temps) les symboles modifiés étaient navigables. Merci! –

+0

Les informations de navigation peuvent être désactivées par projet. – Garen

1

Depuis la migration du projet de VS2005 et le fichier .ncb contient des informations sur diverses variables dans le projet, je vous recommande d'essayer de supprimer le fichier .ncb puis reconstruire le projet VS2008 ou VS2010.

Après avoir essayé ci-dessus, si non corrigé, essayez celui-ci aussi.

Nous pouvons définir les formats suivants.

Type: 1

func(int i, char c) 

{ 
..... 
.... 
..... 
} 

Type: 2

func(i, char c) 

int i; 

char c; 

{ 
..... 
.... 
..... 
} 

Si vous définissez comme type 2, puis appuyez sur une touche variable F12 (Aller à decelearation), il ne sera pas travail. S'il vous plaît changer comme type 1, puis essayez. Cela fonctionnera bien.

Questions connexes