2009-05-26 7 views
8

J'ai un fichier de solution de studio visuel (2005) avec 70 projets.
Chaque fois que j'appuie sur F5 pour l'exécuter, cela m'indique que 4 des projets sont obsolètes et me demande si je veux les reconstruire. Il le fait même si je viens de faire une construction complète.
Je comprends (en principe) que l'un des autres projets doit mettre à jour quelque chose dont dépendent ces projets, mais comment puis-je trouver quoi?Comment corriger le message de 'projets obsolètes' de studio visuel à chaque fois que je l'exécute

Y a-t-il des outils pour vous aider, ou quelle procédure dois-je suivre pour comprendre ce qui amène VS à signaler ces projets pour une reconstruction?

MISE À JOUR:
Pour les intéressés, il ressemble à mon PC était/est le problème (mon HD a été récemment agit jusqu'à). Comme j'ai essayé de localiser le problème, les reconstructions successives ont commencé à générer des erreurs de compilation. J'ai fait un clean-and-build et j'ai eu un très grand nombre d'erreurs (évidemment fausses). Un redémarrage plus tard, suivi d'une reconstruction, toutes les erreurs et le problème de dépendance ont disparu. Excusez-moi maintenant, tandis que je vais sauvegarder tous mes fichiers importants ...

+1

Une bonne façon de déboguer ce problème est détaillé ici: http://stackoverflow.com/questions/2762930/vs2010-always-thinks-project-is-out-of-date-but-nothing- a changé – Ben

Répondre

7

Je voudrais exécuter une construction normale, deux fois de suite. La deuxième fois, j'ai défini la verbosité MSBUILD sur "Normal" ou supérieur (dans Outils-> Options, "Projets et Solutions", "Construire et Exécuter" .J'ai lu attentivement la sortie pour voir ce qui est réellement construit le En fait, maintenant que j'y pense, si c'est vraiment un cycle, alors une partie de ce qui est construit la deuxième fois doit être ce qui l'amène à construire la troisième fois, etc. Peut-être avez-vous une étape post-construction dans l'un des projets qui touche un assemblage ou une autre ressource utilisée comme entrée dans une étape précédente.Avec 70 projets dans la solution, quelque chose comme ça serait facile à provoquer par inadvertance, et difficile à attraper. Apprendre suffisamment sur MSBUILD pour être capable de détecter quand une de ses étapes décide qu'il a besoin de construire parce que quelque chose a changé, puis de comprendre assez bien votre solution pour savoir que rien n'aurait dû changer, alors pour voir que quelque chose a changé g a changé qui n'aurait pas dû changer. Lorsque vous en aurez terminé avec cet exercice, vous aurez peut-être acquis un aperçu qui vous permettra de décomposer la solution en solutions plus petites.

1

J'ai eu le même problème avec la liaison d'un .netmodule dans mon projet qui était conforme à une étape de génération personnalisée. Le prolem s'est avéré être que je liais aussi une bibliothèque C++ et le fichier .netmodule était listé sur la même ligne dans l'entrée de l'éditeur de liens.

Exemple: .LIB .netmodule

INSEAD: .lib \ n .netmodule

1

Une façon plus rapide que la verbosité du journal de John dans Visual Studio 2013, est d'ouvrir l'arborescence du projet de Solution Explorer; les fichiers qui n'ont pas été trouvés n'auront pas le petit triangle devant le nom de fichier (avec lequel vous pouvez normalement voir une liste de symboles dans ce fichier).

Supprimez ces fichiers et pour moi, le message AlwaysCreate a disparu (vous ne voyez que 'AlwaysCreate' lorsque le niveau détaillé est défini sur au moins 'Normal').

1

J'ai eu ce problème et il s'est avéré que j'avais un fichier d'en-tête ajouté à mon projet mais que j'avais supprimé du disque. Suppression du fichier d'en-tête inexistant à partir du corrige le comportement.

1

J'ai eu ce problème exact dans VS2010 après avoir supprimé certains fichiers source qui n'étaient plus utilisés dans mon projet. Il suffit de sélectionner "Clean Solution" dans le menu "Build" puis de reconstruire la solution pour résoudre le problème.

Questions connexes