wake-up-neo.com

Visual Studio-Projekt ist veraltet

Ich habe versucht, Visual C++ zum Laufen zu bringen, aber beim Erstellen jedes Projekts wird diese Fehlermeldung angezeigt: "Dieses Projekt ist veraltet" "Möchten Sie es erstellen?" Es kann nicht jedes Mal gebaut werden. 

Wenn ich neu aufbaue, schlägt der Build immer noch fehl, obwohl im Logger keine Fehlermeldungen angezeigt werden. Ich denke, dass er nicht ordnungsgemäß protokolliert (ich verwende ein Drittanbieterprogramm zum Protokollieren).

Ich habe hier einige Anweisungen befolgt: http://blogs.msdn.com/b/vsproject/archive/2009/07/21/enable-c-project-system-logging.aspx und aktivierte die Protokollierung . 

Ich erhalte diesen Fehler: Projekt nicht auf dem neuesten Stand, da "Dateiname hier einfügen" .lastbuildstate fehlt. Beachten Sie, dass in Visual Studio nichts protokolliert wird. Bei google konnte ich dazu nichts finden. Es kann sein, dass ich die Protokollierung falsch aktiviert habe, aber ich habe das Gefühl, dass dies der Fehler ist. 

19
user1795223

Was sind "tlog" -Dateien?

"tlog" -Dateien werden vom Prozess "Tracker.exe" erstellt, der während eines Builds ausgeführt wird und einige Informationen zum Build aufzeichnet.

Diese Informationen werden beim nächsten Start eines Builds verwendet und aktualisiert, um "veraltete" Dateien zu erkennen. Auf diese Weise kann das Buildsystem nur die Bits erstellen, die neu erstellt werden müssen (anstatt alles neu zu erstellen).

Wodurch wird das Problem "veraltet" verursacht?

Das Problem kann durch falsche oder veraltete Informationen in den *.tlog-Dateien verursacht werden.

Es gibt drei Hauptmöglichkeiten, die passieren können:

1) Sie haben ein Projekt auf Ihrer Festplatte erstellt und anschließend das Verzeichnis an einen anderen Speicherort verschoben ... Die "tlog" -Dateien zeichneten die Pfade des alten Speicherorts auf. Da Sie jedoch die Dateien verschoben haben, sind sie nicht mehr dort, also Sie "veraltet" sein.

2) Ihr "Projekt" hat Verweise auf Dateien (normalerweise Header-Dateien), die an dem angegebenen Ort nicht vorhanden sind. Dies kann vorkommen, wenn Sie eine Datei aus Ihrem Quellcodeverwaltungssystem gelöscht haben, sie jedoch vergessen haben, sie aus Ihrem Projekt zu entfernen, oder weil Sie sich auf Header-Dateien einer Bibliothek beziehen, die möglicherweise an einem anderen Speicherort "installiert" ist. Entwickler gehen oft davon aus, dass sich Dateien auf jedem Rechner am selben "Ort" befinden. Dies ist jedoch nicht immer der Fall!

3) Sie haben Ihr Projekt "umgestaltet" und Dateien in verschiedene Unterverzeichnisse verschoben oder sogar umbenannt - die Pfade/Namen der im "tlog" aufgezeichneten Dateien stimmen daher nicht mit denen überein, die auf Ihrer Festplatte vorhanden sind, dh abgestanden .

Wie kann ich das beheben?

Durch "Clean + Build" oder "Rebuild" wird dies nicht immer behoben ... da diese Vorgänge die "tlog" -Dateien nicht löschen. So:

  • löschen Sie alle "tlog" -Dateien, die Sie in Ihren Lösungsverzeichnissen finden, und erstellen Sie sie neu.

  • stellen Sie sicher, dass sich Ihr Projekt nicht auf nicht vorhandene Dateien bezieht

Wie finde ich heraus, welche Dateien nicht vorhanden sind?

Wenn Sie genau wissen möchten, welche Dateien von Visual Studio veraltet sind, können Sie einige Diagnoseinformationen in Visual Studio aktivieren ... und die Meldungen in DebugView ... anzeigen, die den vollständigen Pfad der Dateien, die es prüft.

In devenv.exe.config geben Sie ein:

<system.diagnostics>
      <switches>
        <add name="CPS" value="4" />
      </switches>
    </system.diagnostics> 

Mehr Details

Angenommen, Sie haben eine Lösung und eine Gruppe von Projekten in einem bestimmten Verzeichnis erstellt, z. S:\MYPROJECTS, kompilieren und ausführen/debuggen usw.

Sie entscheiden dann, das gesamte Verzeichnis an einen anderen Ort auf Ihrer Festplatte zu verschieben, oder Sie ändern Ihre Projekte neu, z. Ändern Sie ihre Verzeichnisnamen usw.

Wenn Sie jetzt "Start Debugging/F5" ausführen, führt Visual Studio die abhängige Prüfung durch und meint, Sie hätten "veraltete Dateien".

Selbst wenn Sie eine "Clean Solution" oder eine "Rebuild Solution" ausführen, erhalten Sie immer noch die Meldung "Veraltete Dateien".

Siehe hier:

Das Problem wird durch die ".tlog" -Dateien verursacht, die bei den Abhängigkeitsüberprüfungen abgefragt werden. Wenn Sie die Lösungen/Projekte (zusammen mit den Build-Zwischendateien) verschoben haben, führt dies zu Verwirrung im Visual Studio-Generator.

Die Lösung besteht darin, alle .tlog-Dateien zu löschen. Sie werden dann beim nächsten Build erneut generiert ... und ab diesem Zeitpunkt erhalten Sie keine falschen "veralteten Dateien". Nachricht ... wenn sie nicht wirklich veraltet sind.

25
Colin Smith

Sie sollten sich von Visual Studio mitteilen lassen, warum es neu aufgebaut werden muss. Visual Studio 2015 bietet hierfür eine integrierte Unterstützung:

  • Werkzeuge (Menü)
  • Optionen
  • Projekt und Lösung
  • Bauen und ausführen

Ändern Sie die Ausführlichkeit der MSBuild-Projekterstellung in Detailed oder Diagnostics.

In meinem Fall wurde eine Nachricht wie diese gedruckt:

1>------ Up-To-Date check: Project: xyz, Configuration: xyz ------
1>Project not up to date because build input 'C:\ws\Missing.h' is missing.

... und das Entfernen des Headers aus dem Projekt hat das Problem behoben.

Um diese Informationen in älteren Visual Studio-Versionen zu erhalten, müssen Sie DebugView verwenden und devenv.exe.config ändern (siehe Colin Smiths Antwort: https://stackoverflow.com/a/21759835/1941779 ). Beachten Sie diese Lösung Funktioniert NICHT für Visual Studio 2015.

24
CrouZ

Auch ich bekam immer den Fehler "Das Projekt veraltet", obwohl sich nichts geändert hat. Ich habe es auf eine Header-Datei im Projektmappen-Explorer zurückverfolgt, die nicht mehr verwendet wurde und aus dem Projektverzeichnis gelöscht wurde. Wenn Sie es aus der SE-Liste entfernen, wurde die überflüssige Fehlermeldung behoben.

5
dankos

Ich hatte auch dieses Problem .. In meinem Fall waren die Verweise auf Dateien (normalerweise Header-Dateien), die an dem angegebenen Speicherort nicht vorhanden sind.

3
lucky zhao

Ich stieß auf dieses Problem und konnte mit Hilfe des Diagnosetricks, über den Colinsmith berichtet hatte, das Problem auf die Tatsache zurückführen, dass mein .vcxproj auf eine Datei verweist, die eigentlich nirgendwo existiert (sie wurde vor langer Zeit gelöscht , aber niemals aus der Projektdatei entfernt).

1
Stephen Edmonds

Nur für die Nachwelt bekam ich dieses Problem und bemerkte dann, dass meine Computeruhr etwa 48 Stunden in die Vergangenheit gesprungen war. Nachdem ich ihn auf die aktuelle Uhrzeit zurückgestellt hatte, verschwand die Warnung.

0
yano