Beim Debuggen meines Projekts wird folgende Fehlermeldung angezeigt:
"Datei" obj \ Debug \ My Dream.exe "kann nicht nach" bin \ Debug \ My Dream.exe "kopiert werden. Der Prozess kann nicht auf die Datei 'bin \ Debug \ My Dream.exe' zugreifen, da sie von einem anderen Benutzer verwendet wird Prozess."
Mit dem Prozess-Explorer sehe ich, dass MyApplication.exe nicht verfügbar war, der Systemprozess es jedoch weiterhin verwendet, obwohl ich das Debuggen zuvor beendet habe. Immer wenn ich meinen Code ändere und mit dem Debuggen beginne, wird es passieren. Wenn ich das Projekt auf USB kopiere und debugge, läuft es in Ordnung.
Warum? Wie kann ich diesen Fehler beheben?
Ich benutze Window 7 Professional. Mit XP habe ich diesen Fehler nie bekommen.
MSBuild.exe
hatte die Datei einen Halt, beenden Sie einfach den Prozess im Task-ManagerAntworten:
Ugh, das ist ein altes Problem, das immer noch gelegentlich in Visual Studio auftaucht. Es hat mich ein paar Mal gebissen und ich habe Stunden damit verloren, neu zu starten und mit VS zu kämpfen. Ich bin sicher, dass es hier auf SO mehr als einmal diskutiert wurde. Es wurde auch in den MSDN-Foren darüber gesprochen. Es gibt keine tatsächliche Lösung, aber es gibt einige Problemumgehungen. Beginnen Sie hier zu recherchieren .
Was passiert ist, dass VS eine Sperre für eine Datei erwirbt und diese dann nicht freigibt. Ironischerweise verhindert diese Sperre, dass VS selbst die Datei löscht, damit sie beim erneuten Erstellen der Anwendung neu erstellt werden kann. Die einzige offensichtliche Lösung besteht darin, VS zu schließen und neu zu starten, damit die Sperre für die Datei aufgehoben wird.
Meine ursprüngliche Problemumgehung bestand darin, den Ordner bin / Debug zu öffnen und die ausführbare Datei umzubenennen. Sie können es nicht löschen , wenn es gesperrt ist, aber Sie können es umbenennen. Sie können also einfach eine Nummer am Ende hinzufügen oder so, sodass Sie weiterarbeiten können, ohne alle Fenster schließen und auf den Neustart von VS warten zu müssen. Einige Leute haben dies sogar mithilfe eines Pre-Build-Ereignisses automatisiert , um eine zufällige Zeichenfolge an das Ende des alten Ausgabedateinamens anzuhängen. Ja, dies ist ein riesiger Hack, aber dieses Problem wird so frustrierend und schwächend, dass Sie alles tun werden.
Nach etwas mehr Experimentieren habe ich später erfahren, dass das Problem nur dann auftritt, wenn Sie das Projekt mit einem der offenen Designer erstellen. Die Lösung, die für mich langfristig funktioniert hat und mich daran gehindert hat, jemals wieder mit einem dieser dummen Fehler umzugehen, besteht darin, sicherzustellen, dass ich immer alle Designerfenster schließe, bevor ich ein WinForms-Projekt erstelle. Ja, auch dies ist etwas unpraktisch, aber es ist sicher besser, wenn VS zweimal pro Stunde oder länger neu gestartet werden muss.
Ich gehe davon aus, dass dies auch für WPF gilt, obwohl ich es nicht benutze und das Problem dort nicht persönlich erlebt habe.
Ich habe auch noch nicht versucht, es auf VS 2012 RC zu reproduzieren. Ich weiß nicht, ob es dort schon behoben wurde oder nicht. Bisher habe ich jedoch die Erfahrung gemacht, dass es auch dann noch angezeigt wird, wenn Microsoft behauptet, es behoben zu haben. Es ist immer noch in VS 2010 SP1 vorhanden. Ich sage nicht, dass ihre Programmierer Idioten sind, die natürlich nicht wissen, was sie tun. Ich denke, es gibt nur mehrere Ursachen für den Fehler und / oder dass es sehr schwierig ist, sich in einem Labor zuverlässig zu reproduzieren. Das ist der gleiche Grund, warum ich persönlich keine Fehlerberichte darüber eingereicht habe (obwohl ich + 1'ed andere Leute habe), weil ich es nicht zuverlässig reproduzieren kann, eher wie der abscheuliche Schneemann.
<end rant, der sich an niemanden richtet>
quelle
Dieser Fehler ist bereits in Visual Studio 2008 aufgetreten. Er ist zurückgekommen und in Visual Studio 2012 häufiger aufgetreten.
Hier ist was ich tue.
Fügen Sie dies in das Pre-Build-Ereignis des problematischen Projekts ein:
quelle
Pre-Build
Ereignis in meinem Windows-Formular?pre-build
Code ist auch das Mittel für die bereitgestellte Anwendung (über eine Clickonce-Anwendung), wenn meine App ausgeführt wird und dann ein Fehler / eine Panne im Task-Manager aufgetreten ist. Ich werde die Task beenden, aber die AufgabemyApp.exe
nicht beenden und sie auffordernERROR ON ENDING TASK
?.locked
sich?Computer (Rechtsklick) -> Verwalten -> Service & Anwendung -> Service -> Anwendungserfahrung aktivieren
Arbeitete für mich!
quelle
Ich hatte das gleiche Problem in Visual Studio 2013. Ich bin nicht sicher, was dies für mein Projekt verursacht hat, aber ich konnte es beheben, indem ich die Lösung bereinigte und neu erstellte.
quelle
Zumindest in meinem Fall habe ich festgestellt, dass Visual Studio 2012 mindestens zwei Geisterprozesse von msbuild.exe erstellt hat, die nach dem Erstellen nicht verloren gingen. Diese Zombies verursachen anscheinend Dateisperren.
Das Töten von msbuild.exe ist eine einmalige Lösung, die pro Build-Basis durchgeführt werden muss.
Aber dann habe ich herausgefunden, dass ich den parallelen Build ein für alle Mal deaktivieren kann - ging zu Extras> Optionen> Projekte und Lösungen> Erstellen und Ausführen> "Maximale Anzahl paralleler Projektbuilds" - standardmäßig hat er den Wert 8, I. habe auf 1 gewechselt. Funktioniert wie Charme.
Natürlich sind Builds jetzt etwas langsamer, aber sicherer als leid. Zumindest für dieses spezielle kleine Projekt brauchte ich nicht mehr als einen Build-Thread.
quelle
Ich verstehe, dass dies eine alte Frage ist. Leider hatte ich das gleiche Problem mit meiner
.net core 2.0
Bewerbung invisual studio 2017
. Also dachte ich daran, die Lösung zu teilen, die für mich funktionierte. Vor dieser Lösung hatte ich die folgenden Schritte ausprobiert.Keiner der oben genannten Schritte hat das Problem nicht behoben.
Dann öffnete ich meinen
Task Manager
und ausgewähltendotnet
Prozess und klickte dann auf die Schaltfläche Aufgabe beenden. Später öffnete ich mein Visual Studio und alles funktionierte gut.quelle
Sehen Sie meine Antwort hier, wenn Sie dieses Problem haben, während Sie Unit-Tests ausführen. Antwort unten kopiert:
quelle
Vor kurzem hatte ich Probleme mit Visual Studio 2012 mit derselben Fehlerbeschreibung: "Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird ..."
Um dies zu beheben, müssen Sie zunächst die Anwendung verstehen, die sie noch verwendet. Ich habe alle Prozesse wie "MSBuild" und "MSBuild Host" heruntergefahren. Das reicht aber nicht. Wenn Sie "Code Contracts" installiert und aktiviert haben, werden manchmal Ihre DLLs benötigt, um diesen Vorgang zu überprüfen und aufzulegen.
Sie müssen also alle Prozesse von "CCCheck.exe" stoppen und das ist alles.
Um zu verstehen, dass der Prozess Ihre DLL verwendet, können Sie immer versuchen, den Ordner "obj" in Ihrem Dateimanager zu löschen. Dieser Vorgang schlägt fehl. Möglicherweise wird das "Nachrichtenfenster" mit einer Beschreibung des Hängevorgangs angezeigt. Als Variante können Sie auch versuchen, die Anwendung "Sys Internals Suite" zu verwenden.
quelle
Hat für mich gearbeitet. Task-Manager -> Name des Projekts -> Aufgabe beenden. (Ich hatte 3 gleiche Prozesse mit meinem Projektnamen);
VS 2013; Gewinnen Sie 8;
quelle
Stellen Sie sicher, dass alle vorherigen Ausführungen der Anwendung (z. B. Start ohne Debugging-Option) tatsächlich gestoppt sind. Ich habe an einer WPF-Anwendung gearbeitet, ohne Debugging gestartet und sie minimiert, als ich immer wieder den Fehler bekam. Nach dem Schließen der Anwendung wurde das VS-Verhalten wieder normal.
quelle
Dieses Problem hat mich in Visual Studio 2017 geplagt. Es begann vor zwei oder drei Wochen und hat meine Produktivität stark beeinträchtigt. Sauber und Rebulid haben nicht funktioniert; Selbst ein Neustart meines Computers reicht nicht aus.
Eine Möglichkeit, das Problem zu beheben, besteht darin, die fehlerhafte Assembly zu bereinigen und das Projekt, das Sie unmittelbar danach ausführen möchten, zu erstellen (im Gegensatz zum erneuten Erstellen). Dies funktioniert in etwa 30% der Fälle.
Die wahrscheinlich zuverlässigste Lösung, die ich gefunden habe, besteht darin, eine Eingabeaufforderung für Entwickler zu öffnen und
msbuild
direkt zu verwenden. Ich mache das seit drei Tagen und bis jetzt ist das Problem kein einziges Mal aufgetreten.quelle
In meinem Fall habe ich "Alle Dateien anzeigen" aktiviert. Visual Studio 2017
quelle
Ausführen
taskmanager
.Suchen
netcore
und löschen Sie es.Sie können die Datei dann manuell oder durch Ausführen löschen
Clean
.quelle
Dies ist reine Spekulation und keine Antwort.
Ich habe dieses Problem jedoch schon eine Weile.
Ich kam nach einiger Zeit, um eine Interaktion zwischen VS und meinen AV-Vorsichtsmaßnahmen zu vermuten.
Nach einigen Spielen, scheint es , dass es möglicherweise weggegangen, als ich meine Antivirus unter der so dass alles verändert
C: \ Benutzer [Benutzername] \ AppData \ Local \ Microsoft \ VisualStudio \ 10.0 \ ProjectAssemblies
Ordner war nicht im Echtzeitschutz enthalten.
Es sieht so aus, als würde der Build die DLL zuerst hier schreiben und dann an den endgültigen Build-Speicherort kopieren.
quelle
Es könnte zu spät sein. Ich stieß jedoch auf ein ähnliches Problem und in meinem Fall hatte das Projekt eine Selbstreferenz. Daher funktionierte das Löschen aus den Referenzen wie ein Zauber !!!
quelle
Ich habe den schnellsten Weg gefunden, ohne Formulare zu schließen oder VisualStudio neu zu starten. Gehen Sie zur Kompilierungsseite des Projekts und klicken Sie auf die Schaltfläche "Erweiterte Kompilierungsoptionen ...". Nehmen Sie dann eine Änderung an einer der Optionen vor (z. B. Ändern der Option "Debug-Informationen generieren" von "Vollständig" in "Nur PDF") und klicken Sie auf "OK". Es funktioniert jedes Mal und muss durchgeführt werden, bis MS diesen Fehler behoben hat (ich hatte dieses Problem nie, bis ich von VS2012 zu VS2013 gewechselt bin).
Ein weiterer Hinweis: Wenn Sie das Projekt oder die Lösung nicht bereinigen können, wird es nicht erstellt. Die Dateien sind definitiv von VS gesperrt (kein Antivirenproblem, zumindest in meinem Fall nicht)
quelle
Ich habe alle diese Vorschläge sowie andere Vorschläge ausprobiert, die an anderer Stelle gefunden wurden, und das einzige, was für mich funktioniert hat, war ein Neustart meines Computers. Dann habe ich eine saubere Lösung gemacht, gefolgt von einem Wiederaufbau. Ich verwende Visual Studio 2013 als Referenz.
quelle
Ich bin auf dasselbe Problem gestoßen , und ich habe festgestellt, dass im Hintergrund tatsächlich mehrere Windows-Formularanwendungen ausgeführt werden . Dies geschieht, wenn Ihre Bewerbung zwei Formulare enthält und Sie das zweite Formular schließen, das nicht Ihr Hauptformular ist, sodass die Bewerbung nicht vollständig beendet wird.
Normalerweise führe ich meine Anwendung aus
Die Lösung besteht darin, die andere Instanz der Windows Form-Anwendung zu schließen . Dies ist eine Möglichkeit, Ihre Anwendungsinstanz immer zu schließen.
quelle
Befehl vor dem Erstellen
Hat geholfen
quelle
[Gelöst] Fehler: Zugriff auf Datei bin / Debug /… nicht möglich, da sie von einem anderen Prozess verwendet wird:
Ich nähere mich, dass Sie diesen Fehler erhalten, während Sie versucht haben, zwei Fenster nacheinander auszuführen, z. B. zuerst ein Formular zu laden, dann manchmal automatisch zu verschwinden und das zweite Formular auf den Bildschirm zu laden.
Grundsätzlich müssen Sie Ihr erstes Formular schließen, das im Hintergrund ausgeführt wird und der Hauptgrund für diesen Fehler ist.
Um das erste Formular zu schließen, müssen Sie diese beiden Codezeilen in den Ereignishandler für das Laden des zweiten Formulars einfügen.
Dadurch wird der Fehler perfekt behoben.
quelle
Eine einfache Lösung besteht darin, in den Ordner bin \ Debug zu wechseln, alle Dateien in diesem Ordner zu löschen und anschließend neu zu erstellen. Wenn dies nicht funktioniert, schließen Sie Visual Studio und wechseln Sie mit dem Datei-Explorer in den Ordner bin \ Debug. Klicken Sie auf der linken Seite auf Datei> Eingabeaufforderung öffnen> Eingabeaufforderung als Administrator öffnen> Geben Sie diesen Befehl ein. "DEL / F / Q / A * "> dann neu erstellen
quelle
Ich fand die Antwort von Cody Gray teilweise hilfreich, da sie mich zur eigentlichen Quelle meines Problems führte, auf das einige von Ihnen möglicherweise auch stoßen: Die Testausführung von Visual Studio bleibt standardmäßig geöffnet und behält eine Sperre für die Dateien bei.
Befolgen Sie die Anweisungen unter https://connect.microsoft.com/VisualStudio/feedback/details/771994/vstest-executionengine-x86-exe-32-bit-not-closing-vs2012-11-0, um dieses überwiegend nutzlose Verhalten zu stoppen -50727-1-rtmrel
Deaktivieren Sie das Menü Test -> Testeinstellungen -> "Test Execution Engine laufen lassen"
quelle
Mein Problem war, dass dotnet aufgelegt wurde und wann immer VS versuchte, eine neue DLL zu erstellen oder auf eine alte zuzugreifen, sich der Dotnet-Prozess an die DLL klammerte und Visual Studio daran hinderte, die DLL zu klonen. Die Lösung besteht darin, alle Dotnet-Aufgaben im Task-Manager zu beenden (die tote Aufgabe wird nur dann tatsächlich entfernt, wenn Sie versuchen, eine zu beenden, und sie wird nicht heruntergefahren, was bedeutet, dass sie funktioniert).
quelle
Schließen Sie VisualStudio, drücken Sie Strg-Alt-Löschen, wählen Sie Task-Manager, suchen und beenden Sie alle MSBuild-Prozesse. VisualStudio hat im Grunde genommen einen ziemlich schwerwiegenden Fehler, bei dem es die Kontrolle über seinen Debugger verliert und der Debugger die PDF-Datei im Debug / Bin sperrt Ordner. Nachdem Sie alle MSBuild-Prozesse (Debugger) beendet haben, löschen Sie den Ordner / debug / bin und öffnen Sie Ihre Lösung erneut in Visual Studio. Du kannst jetzt gut gehen. Microsoft muss diesen Mist beheben.
quelle
Ich habe eine separate Frage zu VS 2017 geöffnet , die sich nach einem Update ähnlich verhalten hat. Das Problem schien jedoch vom Antivirenprogramm generiert zu werden.
Ich habe den Ordner bin zur Antiviren-Ausschlussliste hinzugefügt, den Computer neu gestartet und jetzt scheint es zu funktionieren.
quelle
Ich habe dieses Problem gelöst.
In der Nähe des Debugs sehen Sie ein Dropdown-Menü mit einigen Konfigurationen. Standardmäßig gab es eine CPU. Wählen Sie x86 aus und führen Sie das Programm aus, das funktionieren soll. Wenn x86 nicht vorhanden ist, rufen Sie den Konfigurationsmanager auf und fügen Sie x86 hinzu
quelle
Noch ein Kludge, ugh, aber es ist einfach und funktioniert für mich in VS 2013. Klicken Sie auf das Projekt. Im Eigenschaftenfenster sollte sich ein Eintrag mit dem Namen Projektdatei mit einem Wert befinden
(Ihr Projektname) .vbproj
Ändern Sie den Projektnamen, z. B. indem Sie am Ende ein -01 hinzufügen. Die ursprünglich gesperrte ZIP-Datei ist noch vorhanden, wird jedoch nicht mehr referenziert, sodass Ihre Arbeit fortgesetzt werden kann. Beim nächsten Neustart des Computers verschwindet diese Sperre und Sie können die fehlerhafte Datei löschen.
quelle