Frage

Während eine lange Kompilation mit Visual Studio 2005 (Version 8.0.50727.762), habe ich manchmal die folgenden Fehler in einem Projekt in mehreren Dateien erhalten:

fatal error C1033: cannot open program database 'v:\temp\apprtctest\win32\release\vc80.pdb'

(Die genannte Datei ist entweder vc80.pdb oder vc80.idb im Temp-Verzeichnis des Projektes.)

Der nächste Build des gleichen Projektes erfolgreich ist. Es gibt kein anderes Visual Studio öffnen, dass möglicherweise die gleichen Dateien zugreifen zu können.

Das ist ein ernstes Problem, weil es jede Nacht Kompilation unmöglich macht.

War es hilfreich?

Lösung

Es ist möglich, dass ein Anti-Virus oder ein ähnliches Programm wird die PDB-Datei auf Schreib berühren - ein Antivirus ist die wahrscheinlichste Verdächtige in diesem Szenario. Ich habe Angst, dass ich nur einige allgemeine Hinweise geben können, auf Grund meiner bisherigen Erfahrungen bei der Einrichtung Nightly Builds in unserem Shop. Einige von ihnen mögen trivial klingen, aber ich bin auch sie zum Zweck der Fertigstellung.

  • In erster Linie: Stellen Sie sicher, dass Sie mit einer sauberen Weste starten. Das heißt, das Ausgabeverzeichnis des Build-Kraft löschen, bevor Sie Ihre nächtlichen starten.
  • Wenn Sie ein Anti-Virus, Anti-Spyware oder andere solche Programme auf dem nächtlichen Maschine haben, können Sie diese zu entfernen. Wenn das keine Option ist, fügen Sie Ihre obj Ordner zur Ausschlussliste des Programms.
  • (optional) Betrachten Sie Tools wie VCBuild oder MSBuild als Teil Ihrer nächtlichen verwenden. Ich denke, es ist besser, MSBuild zu verwenden, wenn Sie auf einer Multi-Core-Maschine sind. Wir verwenden IncrediBuild für Nightlies und MSBuild für Veröffentlichungen, und haben nie das Problem, das Sie beschreiben.

Wenn nichts anderes funktioniert, können Sie einen Watchdog-Skript nach dem Build startet ein paar Stunden einplanen und seinen Status überprüfen; wenn die Build fehlschlägt, sollte der Watchdog neu starten. Dies ist ein hässlicher Hack, aber es ist besser als nichts.

Andere Tipps

Wir haben dies auch viel an meiner Seite gesehen. Diese Erklärung , von Peter Kaufmann, scheint auf der Grundlage unserer Einrichtung das plausibel zu sein:

Wenn eine Lösung in Visual Studio 2005 den Aufbau, Sie Fehler wie schwerwiegenden Fehler C1033 erhalten: nicht öffnen können Programmdatenbank 'xxx \ debug \ vc80.pdb'. Wenn jedoch die Build ein zweites Mal ausgeführt wird, es gelingt in der Regel.

Grund: Es ist möglich, dass zwei Projekte in der Lösung ihre Ausgaben in das gleiche Verzeichnis schreiben (z ‚xxx \ debug‘). Wenn die maximale Anzahl von paralleler Projekteinstellung in Werkzeugen baut - Optionen, Projekte und Lösungen - Bild und Run auf einen Wert größer als 1 gesetzt ist, bedeutet dies, dass zwei Compiler Threads versuchen werden, um die gleichen Dateien gleichzeitig zugreifen kann, in einer Datei führen Freigabekonflikt. Lösung: Ihre Projekt-Einstellungen prüfen und sicherstellen, dass keine zwei Projekte das gleiche Verzeichnis für die Ausgabe, Ziel oder jede Art von Zwischendateien verwenden. Oder die maximale Anzahl von parallelem Projekt baut Einstellung auf 1 für eine schnelle Abhilfe. Ich erleben genau dieses Problem, während der VS-Projektdateien verwenden, die mit der CLAPACK Bibliothek kamen. UPDATE: Es gibt eine Chance, dass Tortoise SVN ‚vc80.pdb‘ greift, auch wenn die Datei nicht unter Versionskontrolle, die auch in dem oben beschriebenen Fehler führen kann (dank Liana für die Meldung). Allerdings kann ich das nicht bestätigen, da ich nicht das Problem, nachdem sichergestellt unterschiedliche Ausgabeverzeichnisse werden für alle Projekte verwendet reproduzieren können.

Schalten Sie die Debug-Informationen zu C7-Format anstelle des HVE zu verwenden.

Project Options -> C/C++ -> General -> Debug Information Format und setzen Sie sich auf C7.

Dies geschieht in der Regel, wenn Ihre bisherigen Versuche bei Debuggen nicht dem Debugger vollständig getötet haben. Im Task-Manager einen Prozess sucht vcjit genannt, es zu töten und versuchen Sie es erneut. Schlechteste Option Visual Studio neu starten, sollte dies Ihr Problem lösen.

Ich hatte dieses Problem heute, und es stellte sich heraus, nicht-ansi Zeichen an die PDB auf dem Weg zu sein, die sie verursacht hat.

Ich bin mit Fenstern, durch vmware, und mein Projekt war in einem gemeinsamen Standort: \ vmware-host \ Shared Folders \ Projekt

Wenn ich es bewegt Benutzer \ \ julian \ Projekt es das Problem behoben.

Versuchen Sie rechts die ausführbare Datei von VS klicken .... und Eigenschaften-> Kompatibilität:> Tick „Programm im Kompatibilitätsmodus ausführen für:“ OFF ........

Ich hatte ein ähnliches Problem bei der Arbeit an einem Projekt, das ich in meinem Dropbox-Ordner hatte. Ich fand, dass es würde diesen Fehler aus, wenn kleine „Syncing“ -Symbol auf dem Dropbox-Symbol in der Taskleiste gehen wurde, da Dropbox die Dateien zugegriffen hat sie auf ihre Server zu. Wenn ich bis Dropbox fertig Syncing zu bauen gewartet, es jedes Mal funktioniert.

Ich lief in dieses Problem. Visual Studio beschwerte sich über nicht in der Lage zu sein vc100.pdb zu öffnen. Ich suchte nach geöffnete Datei auf diese Datei-Handles mit procexp und fand heraus, dass der Prozess mspdbsrv es eine offene Datei-Handle hatte. Töten Sie diesen Vorgang das Problem behoben, und ich war in der Lage zu kompilieren.

Sind Sie LinqToSql überhaupt mit? Vielleicht ist es ähnlich wie die ungeraden Fehler erlebe ich gelegentlich, wie ich in dieser Frage gestellt: Was Visual Studio verursacht fälschlicherweise eine Assembly laden zum scheitern verurteilt?

Ich änderte mein Zwischenverzeichnis aus:

%TEMP%\$(ProjectName)\$(Platform)\$(Configuration)\

C:\temp\$(ProjectName)\$(Platform)\$(Configuration)\

Es funktioniert jetzt. Keine Ahnung, warum.

Ich habe gleiches Problem C1033: cannot open program database,

Szenario

Ich habe zwei DLL parent.dll und CHILD.DLL .I gerade angebracht CHILD.DLL Projekt mit Visual Studio-Debugger zur gleichen Zeit ich versuche, das zu bauen parent.dll Projekt, erzeugt Fehler C1033: cannot open program database

Lösung

Stop Debugging und den Prozess mit der debugger.Rebuild dem Projekt

angebracht töten

Das passiert mir konsequent, wenn ich Strg + Break einen Build (vs2015) abzubrechen. Es gibt einige Verfahren, die nicht ordnungsgemäß heruntergefahren wird. Ich ging auf Raubzug „End Tasking“ ms / vs verwandte Prozesse (suchen Sie nach Duplikaten) und meine Build funktionierte wieder. Ein Neustart würde wahrscheinlich arbeiten. Wie würde sich bewegenden binutils GNU.

Ärgerlicher unlocker Tools berichten nicht alle Prozesse die Datei sperren, Fenster lassen mich nicht die .pdb löschen, aber ich kann es umbenennen. Meine Vermutung ist, zwei Prozesse während eines Build zur gleichen Zeit springen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top