3

J'ai quelques projets VS 2008 (C++) qui sont liés chaque fois que je démarre une construction, même si rien n'a changé. c'est-à-dire que je sélectionne "Build Solution", il compile et lie, je sélectionne à nouveau "Build Solution", il ne compile rien, mais des liens à nouveau. Ceci est assez ennuyeux et j'ai vérifié tout ce qui pourrait le relier à nouveau. Existe-t-il un moyen de savoir pourquoi Visual Studio effectue ou ignore certaines étapes de construction?Liens Visual Studio bien que rien n'ait changé

Toute contribution est appréciée!

Répondre

3

J'ai eu le temps de revoir le problème et un collègue m'a donné le conseil d'utiliser "process monitor" de sysinternals pour déterminer quel fichier est manquant.

Voilà, ça a marché! Il s'avère que Visual Studio insiste sur la liaison avec un groupe de bibliothèques même si l'application n'en a pas besoin. En raison d'une chaîne d'événements malheureuse (je suppose ...), l'un des chemins de bibliothèque par défaut a disparu des paramètres globaux de Visual Studios, donc VS ne pouvait plus trouver cette bibliothèque ("coredll.lib" dans mon cas).

Ceci n'affectait pas la sortie finale, car cette lib n'est pas du tout nécessaire, mais elle a quand même déclenché un relink à chaque fois.

Il y a deux solutions possibles: 1) Restaurez le chemin de cette lib dans les paramètres visuels globaux Studio 2) Utilisez « $ (NOINHERIT) » dans AdditionalLibraries pour se débarrasser de la lib non nécessaire.

J'ai utilisé la solution n ° 1, car le n ° 2 doit être fait pour chaque configuration de chaque projet car il ne peut pas être effectué via les feuilles de propriétés.

0

Bit d'une vue longue mais vérifiez l'horodatage sur toutes les DLL dépendantes dont vous disposez. If they are in the future then a rebuild will occur.

Modifier: Avez-vous essayé d'ouvrir les fichiers .vcproj dans un éditeur pour vérifier si quelque chose d'inhabituel? Vous pouvez également essayer de les recréer à partir de zéro, si c'est possible.

+0

Bonne idée, mais pas de chance. J'ai vérifié tous mes disques durs et je n'ai pas un seul fichier du futur ... Donc je suppose que VS attend un fichier qui n'est pas là ... –

1

La reconstruction peut également être due à des fichiers .h inexistants et inutilisés appartenant au projet. Comme ils ne sont pas utilisés, il n'y a pas d'avertissement ni d'erreur sur les fichiers manquants. L'utilisation de "Process Monitor" par Sysinternals comme mentionné précédemment était un bon indice pour comprendre la raison.

Questions connexes