Ich füge das nur für die Aufzeichnung, falls jemand anderes dieses Problem in der Zukunft bekommt.
Wir hatten ein ähnliches Problem mit einem großen, gemischten FORTRAN/C++ - Projekt, ob sich etwas geändert hat oder nicht. Es scheint damit zu beginnen, als die Lösung von VS2008 auf 2010 aktualisiert wurde, obwohl sich niemand daran erinnern konnte.
Schließlich nahm ich einen ernsthaften Blick (es war nervig, aber nicht genug, um etwas zu tun). Durch Eliminierungsprozess habe ich die Lösung gefunden:
Entfernen Sie alle Anführungszeichen in den "zusätzlichen Bibliotheksverzeichnisse" des Fortran-Projekts der obersten Ebene (d. H. Derjenige, der die ausführbare Datei erstellt).
Nun, ich würde nicht das selbst glauben, ohne Beweise, also, wenn Sie den Drang haben, um diesen Fehler zu reproduzieren sich selbst:
- Öffnen Sie eine neue VS2010-Sitzung.
- Erstellen Sie ein neues FORTRAN-Projekt, das eine ausführbare Datei erstellt.
- Lassen Sie es leer, aber verknüpfen Sie es mit einer nicht eingebauten Lib-Datei (d. H. Einer eigenen), und fügen Sie das Verzeichnis Ihrer Bibliothek den Zusätzlichen Bibliotheksverzeichnissen hinzu.
- Überprüfen Sie diese Kompilieren und Links richtig.
- Versuchen Sie jetzt doppelte Anführungszeichen (") um das Verzeichnis hinzuzufügen, und klicken Sie mehrmals auf" Erstellen ". Wenn Ihre Sitzung wie meine ist, wird sie jedes Mal neu verknüpft. Wenn Sie die Anführungszeichen entfernen, wird es gestoppt.
Dies scheint nur ein Problem auf dem Top-Level-Projekt zu sein, und wenn diese Projekte Fortran sind - die Anführungszeichen haben keinen Einfluss auf C++ Projekte oder solche, die libs erstellen
die Neuverknüpfung tritt nicht auf, wenn VS tut. Sie müssen nicht nach libs suchen (zum Beispiel, wenn alle Ihre Bibliotheken eingebaut sind, wie zB kernel32.lib), aber ob Ihre lib in dem Verzeichnis ist, das Anführungszeichen oder ein anderes enthält.
Wenn jemand diese "Funktion" rechtfertigen kann, lass es mich wissen!
Siehe auch: http://stackoverflow.com/questions/2762930/vs2010-always-thinks-project-is-out-of-date-but-nothing-has-changed für die gleiche Frage, die durch fehlende Dateien eher verursacht wird als eine PDB-Datei. – Ben