Das macht mich verrückt.
Ich habe ein ziemlich großes Projekt, das ich ändern möchte. Ich habe vorhin bemerkt, dass DbCommand
Visual Studio beim Tippen keine Syntaxhervorhebung vorgenommen hat und ich benutze System.Data.Common
.
Obwohl nichts hervorgehoben wurde, schien das Projekt in meinem Browser einwandfrei zu laufen. Also habe ich beschlossen, den Debugger auszuführen, um zu sehen, ob die Dinge wirklich so funktionieren, wie sie sein sollten.
Jedes Mal, wenn die Klasse aufgerufen wird, die die Hervorhebung nicht durchgeführt hat, erhalte ich die "the source file is different from when the module was built"
Nachricht.
Ich habe die Lösung bereinigt und mehrmals neu erstellt, tmp-Dateien gelöscht und alle Anweisungen hier befolgt . , startete den Webserver neu und es sagt mir immer noch, dass die Quelldateien unterschiedlich sind, wenn sie eindeutig nicht sind.
Aus diesem Grund kann ich keinen der Codes testen, die ich heute geschrieben habe.
- Wie kann sich die Quelle von der Binärdatei unterscheiden, wenn ich sie gerade eingehalten habe?
- Gibt es eine Möglichkeit, dem visuellen Studio einen Sinn zu geben, oder fehlt mir nur etwas?
quelle
Antworten:
Ich habe dieses Problem beim Ausführen einer Konsolen-App, bei der die andere Quelle die Quelle mit dem Einstiegspunkt war (statische Leere Main). Das Löschen der Verzeichnisse bin und obj und das Durchführen einer vollständigen Neuerstellung schienen dies zu korrigieren, aber jedes Mal, wenn ich eine Codeänderung vornahm, war sie wieder veraltet.
Der Grund, den ich dafür gefunden habe, war:
(Für # 2 -> Zugriff über die Symbolleiste unter der Dropdown-Liste 'Debug / Release'.)
quelle
solution platforms
vonAny CPU
zuMixed Platform
irrtümlich !!! Ich ändere es wieder aufAny CPU
und es funktioniert wieder.Ich hatte nur das gleiche Problem, meine Projekte befanden sich alle in der gleichen Lösung, sodass sie Projekt-zu-Projekt-Referenzen verwendeten. Wenn eines geändert wurde, sollten die anderen aktualisiert werden. Dies war jedoch nicht der Fall. Ich habe versucht, VS2010 zu erstellen, neu zu erstellen, zu schließen und eine neue Kopie aus unserer Quellcodeverwaltung zu ziehen. Nichts davon hat funktioniert. Am Ende habe ich versucht, mit der rechten Maustaste auf das Projekt zu klicken und jedes Projekt einzeln neu zu erstellen. Dadurch wurden die DLL- und PDF-Dateien aktualisiert, sodass ich sie debuggen konnte.
Das Problem hierbei ist, dass Ihre DLL- und / oder Ihre PDF-Dateien nicht synchron sind.
quelle
Folge diesen Schritten
quelle
Zusätzlich zu diesen Antworten hatte ich das gleiche Problem beim Ersetzen neuer DLLs durch alte aufgrund des falschen Pfades. Wenn dieser Fehler weiterhin angezeigt wird, verweisen Sie möglicherweise nicht auf den falschen Pfad für die DLLs. Gehen Sie zum IIS-Manager und klicken Sie auf die Website, auf der Ihre DLLs verwendet werden. Klicken Sie im rechten Fenster auf Erweiterte Einstellungen und wechseln Sie im Datei-Explorer zum Pfad des Ordners Physischer Pfad. Stellen Sie sicher, dass Sie diesen Ordner zum Ersetzen Ihrer DLLs verwenden.
quelle
Einige Dinge, die Sie überprüfen sollten:
Haben Sie Ihre Projektreferenzen noch einmal überprüft?
Haben Sie einen von Visual Studio gestarteten Webserver, der noch ausgeführt wird? Überprüfen Sie die Taskleiste und suchen Sie nach einer Seite mit einem Zahnradsymbol (möglicherweise haben Sie mehrere):
(Quelle: msdn.com )
Klicken Sie mit der rechten Maustaste und schließen Sie es. Sie können mehr als eine haben. Können Sie Ihre Änderungen jetzt debuggen?
Führen Sie die Debug-Version aus, haben aber nur die Release-Version erstellt (oder umgekehrt)?War die Kompilierung tatsächlich erfolgreich? Ich weiß, dass ich durch "Es gab Fehler, möchten Sie trotzdem fortfahren?" Nachricht ein paar Mal ohne es zu merken.quelle
Bei Webdiensten kann das Problem mithilfe des Visual Studio-Befehls "Im Browser anzeigen" verursacht werden. Dadurch werden die DLL- und PDB-Dateien des Dienstes in den Ordnern bin und obj abgelegt. Beim Aufrufen des Webdienstes von einem Client aus verwendet Visual Studio den PDB im Ordner bin (oder obj), verwendet jedoch die DLL im Ausgabe-Build-Ordner des Projekts. Es gibt einige Problemumgehungen:
Wenn Sie zuvor den Fehler "Nicht übereinstimmende Quelldatei" erhalten haben, hat Visual Studio den Dateinamen möglicherweise einer schwarzen Liste hinzugefügt. Überprüfen Sie Ihre Lösungseigenschaften. Wählen Sie links im Dialogfeld "Allgemeine Eigenschaften -> Quelldateien debuggen". Wenn Ihre Webdienst-Quelldateien im Feld "Suchen Sie nicht nach diesen Quelldateien" angezeigt werden, löschen Sie sie.
quelle
Ich hatte gerade dieses Problem.
Ich habe alles versucht, aber nur das hat funktioniert:
Erstellen Sie die Lösung.
Dies hat das Problem für alle Builds behoben, die für mich vorwärts gehen.
quelle
So habe ich das Problem in Visual Studio 2010 behoben:
1) Ändern Sie die Option "Lösungskonfigurationen" von "Debug" in "Release".
2) Starten Sie das Debuggen
3) Beenden Sie das Debuggen und schalten Sie die Option "Lösungskonfigurationen" wieder auf "Debuggen".
Das hat bei mir funktioniert. Schritt 3 ist optional - es hat gut funktioniert, als ich es in "Release" geändert habe, aber ich wollte es wieder ändern.
quelle
Meine Lösung:
Ich hatte ein vorhandenes Projekt aus einer anderen Lösung in eine neue Lösungsdatei aufgenommen.
Ich habe nicht bemerkt, dass beim Wiederherstellen des vorhandenen Projekts die endgültige Ausgabe in das Ausgabeverzeichnis der NEUEN Lösung gestellt wurde. Ich hatte einen Linkerpfad definiert, um in das Ausgabeverzeichnis der ALTEN Lösung zu schauen.
Durch das Umschalten meines Projekts auf die Suche im Ausgabeverzeichnis der neuen Lösung wurde dieses Problem für mich behoben.
quelle
Ich hatte dieses Problem und es stellte sich heraus, dass ich meine Konsolenanwendung als Windows-Anwendung ausführte. Durch Zurückschalten des Ausgabetyps auf die Konsole wurde das Problem behoben.
quelle
Ich hatte das gleiche Problem. Um dies zu beheben, habe ich den "Release-Modus" zum Debuggen in VS2013 verwendet. Was für mich ausreicht, weil ich in einem Knoten js \ c ++ Addon arbeite.
quelle
Entladen Sie das Projekt mit der Datei, die den Fehler verursacht.
Laden Sie das Projekt neu.
Fest
quelle
In Visual Studio 2017 wurde dieses Problem durch Löschen des versteckten .vs-Ordners in behoben.
quelle
Mein Problem war, dass ich zwei Projekte in meiner Lösung hatte. Das zweite war ein Testprojekt, mit dem das erste aufgerufen wurde. Ich hatte den Pfad zu den Referenzen aus dem Release-Ordner des Bin-Ordners ausgewählt.
Wenn ich also den Code des ersten Projekts änderte und neu erstellte, wurden die DLLs im Debug-Ordner aktualisiert, aber das aufrufende Projekt zeigte auf den Release-Ordner, was mir den Fehler gab: "Die Quelldatei unterscheidet sich von der des Moduls erbaut wurde."
Nachdem ich den Verweis auf die DLL des Hauptprojekts im Release-Ordner gelöscht und auf die DLL im Debug-Ordner gesetzt hatte, war das Problem behoben.
quelle
Lösung: - Das Problem ist: - Wenn sich einige Projekte in einer Lösung auf andere Projekte beziehen, wird die DLL einiger Projekte manchmal nicht automatisch aktualisiert. Wenn Sie die Lösung erstellen, haben einige Projekte frühere Build-DLLs, nicht neueste dlls
Sie müssen manuell die DLL des neuesten Build-Projekts in das referenzierte Projekt kopieren
quelle
Ich habe Visual Studio 2013 verwendet und hatte ein vorhandenes Projekt unter Quellcodeverwaltung.
Ich hatte eine neue Kopie von der Quellcodeverwaltung in ein neues Verzeichnis heruntergeladen.
Nachdem ich Änderungen an der neuen Kopie vorgenommen hatte, erhielt ich beim Erstellen den fraglichen Fehler.
Meine Lösung:
1) Öffnen
Documents\IISExpress\config\applicationhost.config
2)
virtualDirectory
Knoten mit Verzeichnis auf die neue Kopie aktualisieren und speichern.quelle
Mein Problem war, dass ich einen Webservice im Projekt hatte und den Erstellungspfad geändert habe.
Das Wiederherstellen des Standard-Erstellungspfads hat mein Problem behoben.
quelle
Ich hatte das gleiche Problem und folgte den meisten Anweisungen in den anderen hier veröffentlichten Antworten. Nichts schien für mich zu funktionieren.
Schließlich habe ich IIS geöffnet und den Anwendungspool für meine Webanwendung recycelt. Ich habe IIS Version 8.5.9600. Ich habe mit der rechten Maustaste auf meine Webanwendung geklickt und dann: Bereitstellen> Recyceln> Anwendungspool recyceln> OK.
Das scheint es behoben zu haben, Haltepunkte werden jetzt wie erwartet getroffen. Ich denke, dass dies zusammen mit dem Löschen der Ordner bin und obj meiner Situation geholfen hat.
Viel Glück!
quelle
Ich weiß, dass dies eine alte Frage ist, aber ich hatte nur das gleiche Problem und wollte hier posten, falls es jemand anderem hilft. Ich habe einen neuen Computer bekommen und die IT-Abteilung hat meinen alten Computer mit dem neuen zusammengeführt. Beim Einrichten von TFS habe ich einem anderen internen Laufwerk einen anderen lokalen Pfad als den zuvor verwendeten zugeordnet. Der alte Pfad bestand noch aus den zusammengeführten Daten auf meiner Festplatte, sodass ich weiterhin erstellen und ausführen konnte. Meine IIS-Pfade zeigten auch auf das alte Verzeichnis. Nachdem ich IIS auf den richtigen Pfad aktualisiert hatte, konnte ich problemlos debuggen. Ich habe auch das alte Verzeichnis aus gutem Grund gelöscht.
quelle
Das habe ich auch erlebt. Ich öffne einfach den obj-Ordner im Projekt und öffne dann den Debug-Ordner. Lösche die .pdb-Datei und das ist alles.
quelle
Dieser Fehler tritt auch auf, wenn Sie versuchen, Änderungen an einer Quelldatei vorzunehmen, die nicht Teil des Projekts ist.
Ich habe eine Methode aus einer DLL eines anderen meiner Projekte debuggt, in der Visual Studio die Quelle sehr hilfreich geladen hatte, da die DLL auf demselben Computer erstellt wurde und den Pfad zur Quelle kannte. Offensichtlich wird das Ändern einer solchen Datei nichts bewirken, es sei denn, Sie erstellen das referenzierte Projekt neu.
quelle
quelle
In Visual Studio 2015 mit C ++ wurde das
the source file is different from when the module was built
Problem für mich behobenquelle
Debug-> Start ohne Debugging.
Diese Option hat bei mir funktioniert. Hoffe das hilft!
quelle
Überprüfen Sie, ob der Speicherort, auf den Sie mit mex () in Matlab hingewiesen haben, korrekt ist (enthält lib- und obj-Dateien, die bis zum letzten Datum geändert wurden, an dem Sie die Bibliothek in Visual Studio kompiliert haben).
Wenn dies nicht der Fall ist:
Stellen Sie sicher, dass Sie Visual Studio in einem Modus kompilieren, in dem LIB-Dateien gespeichert werden:
Eigenschaften -> Konfigurationseigenschaften -> Allgemein -> Konfigurationstyp -> statische Bibliothek
Eigenschaften -> Konfigurationseigenschaften -> Allgemein -> Zielerweiterung = .lib (anstelle von exe)
Stellen Sie sicher, dass das Ausgabe- und das Zwischenverzeichnis mit dem Matlab-Verzeichnis in übereinstimmen
quelle
In meinem Fall funktioniert die Antwort von @ Eliott nicht. Um dieses Problem zu lösen , hatte ich ausschließen / einschließen Aus Projekt meine defiziente Datei, andalso reinigen und neu aufbauen die Lösung.
Nach diesen Aktionen werden meine Datei mit meinen letzten Änderungen und der Debugger wiederhergestellt.
Ich hoffe diese Hilfe.
quelle
Ich erhalte dieses Problem beim Debuggen manchmal mit Visual Studio, aber wenn die Anwendung von IIS bereitgestellt wird . (Wir müssen in dieser Form aus komplizierten Gründen entwickeln, die damit zu tun haben, wie der ursprüngliche Entwickler dieses Projekt eingerichtet hat.)
Wenn ich die Datei ändere und neu erstelle, wird dies häufig behoben. Ich weiß, das klingt albern, aber ich habe nur versucht, Code zu debuggen, um zu sehen, warum es etwas Seltsames macht, wenn ich es eine Weile nicht geändert habe, und ich habe ein Dutzend Dinge von dieser Seite ausprobiert, aber es wurde nur durch Ändern behoben die Datei..
quelle