Ich erhalte diesen Fehler immer wieder während der Erstellung meines VS2012 C # -Projekts
Error 41 Could not copy "obj\Debug\WeinGartner.WeinCad.exe" to
"bin\Debug\WeinGartner.WeinCad.exe".
Exceeded retry count of 10. Failed.
Error 42 Unable to copy file "obj\Debug\WeinGartner.WeinCad.exe" to
"bin\Debug\WeinGartner.WeinCad.exe". The process cannot access the file
'bin\Debug\WeinGartner.WeinCad.exe' because it is being used by another
process.
Jetzt habe ich herausgefunden, dass das den Prozess beendet
Weingartner.WeinCad.vhost.exe
funktioniert (manchmal), aber das geht mir auf die Nerven. Wie kann man das überhaupt verhindern?
Meine Debugger-Einstellungen sind
c#
visual-studio-2012
build
process
Bradgonesurfing
quelle
quelle
Antworten:
In Visual Studio 2013 sind ähnliche Fehlermeldungen aufgetreten.
Meistens habe ich festgestellt, dass diese Situation aufgetreten ist, als ein Debug-Prozess aufgrund einer Ausnahme angehalten wurde.
Wenn clean + build dieses Problem für mich nicht gelöst hat, habe ich folgende Erfolge erzielt:
bin
undobj
Ordner undDieser "Fehler" besteht seit Visual Studio 2003.
Schließlich habe ich auch festgestellt, dass ich dieses Problem häufig überwinden kann, indem ich die ausführbare Datei einfach umbenenne und dann lösche.
quelle
In Visual Studio Premium 2013 (Update 3) habe ich dies mit einem vorgefertigten Einzeiler gelöst:
Dadurch werden alle alten PDB-Dateien ordnungsgemäß gelöscht (sofern dies möglich ist) und anschließend alle mit einer
.old.pdb
Erweiterung verbleibenden Dateien umbenannt . Ein netter Nebeneffekt ist, dass, wenn der alte PDB noch gesperrt ist, dem Dateinamen nur ein weiteres altes Element hinzugefügt wird und alle beim nächsten Neustart von Visual Studio und Erstellen eines Builds bereinigt werden.Beispiel: Build / Debug-Sitzung 1 bleibt
MyProject.pdb
gesperrt.Das nächste Mal, wenn Sie bauen:
MyProject.pdb
->MyProject.old.pdb
Dann build / Debug - Session 2 gestartet, und beide
MyProject.pdb
undMyProject.old.pdb
ist nach wie vor gesperrt:MyProject.old.pdb
->MyProject.old.old.pdb
MyProject.pdb
->MyProject.old.pdb
Wenn Sie Visual Studio neu starten und einen neuen Build erstellen, werden beide entfernt, und der Vorgang wird wie gewohnt fortgesetzt.
quelle
Dies liegt daran, dass Sie Ihre Anwendung geschlossen haben, sie jedoch weiterhin im Hintergrund ausgeführt wird.
Vorübergehende Lösung:
Permanente Lösung: Sie müssen Ihre Anwendung durch Codierung schließen. Hier ist der Code ...
Sie müssen diesen Code in allen Formularen in das Abschlussereignis des Formulars einfügen. Beispiel:
quelle
Die .vhost.exe ist ein Debugger-Prozess. Es scheint also, dass der zu debuggende Prozess nicht ordnungsgemäß geschlossen wurde. Möglicherweise haben Sie einen Fehler, der ihn am Leben erhält und den Debug-Prozess nicht korrekt stoppt. Es gibt Optionen, die Sie vom Prozess trennen können, wenn Sie auf "Debugging beenden" klicken, anstatt den Debugger tatsächlich zu beenden. Vielleicht haben Sie diesen Satz.
Aber das ist das Problem - die Datei, über die Sie kopieren möchten, wird vom Betriebssystem gesperrt (dh wird immer noch verwendet), sodass das Kopieren verhindert wird. Stellen Sie sicher, dass die Datei kostenlos ist und Sie kopieren können.
quelle
Visual Studio 2019
erhalte ich eine ähnliche Nachricht, obwohl der Prozess jetzt in einigen Ausgaben (nicht in allen) erwähnt wird. Es war testhost.x86.exe, über das ich töten mussteTask Manager
. Danach schien es nicht mehr möglich zu sein, einen der Testprozesse zu erkennen.Ich habe es gelöst, indem ich IISExpress im Task-Manager beendet habe
quelle
Sie sollten Ihr Antivirenprogramm deaktivieren (insbesondere wenn es sich um ein Avast handelt) und es erneut versuchen. Es hat mir geholfen. Das Problem ist, dass der Debugger / Builder die EXE-Datei erstellt, die von Avast als Bedrohung identifiziert und daher gelöscht wird, bevor sie von VS ausgeführt werden kann.
quelle
Ich konnte dieses Problem (VS 2010) beheben, indem ich die folgenden Pre-Build-Aktionen bereitstellte.
quelle
Zitat:
Code-Auszug
quelle
Ausnahme
In einigen Fällen , in Visual Studio , wenn Sie auf (Build Rebuild ||) der laufenden IISExpress konfrontieren Sie mit dieser Ausnahme:
Lösung
Du bist gut 2 GO!
quelle
Es scheint, dass durch Ändern des Assemblernamens eines Projekts das Problem behoben wird.
Also stattdessen
Ich ändere es dazu
Beachten Sie, dass ich es gerade geändert habe
Increment and Recall
zuIncrement_Recall
, ich habe gerade die Leerzeichen entfernt. Es funktioniert jetzt gut für mich.quelle
Wenn Sie den Prozess w3wp.exe (IIS) beenden, wird dies häufig behoben.
Im Allgemeinen können Sie den Prozess kennen, bei dem die Datei gesperrt ist, indem Sie zum Ordner bin navigieren und versuchen, ihn zu löschen. Die Fehlermeldung, die angezeigt wird, falls ein anderer Prozess sie verwendet, enthält den Namen des Prozesses, der beendet werden muss.
quelle
Ich hatte das gleiche Problem mit VS 2012 Version 11.0.60610.01 Update 3 unter Windows 8
Es waren keine Designerfenster geöffnet und das Projekt war eine einfache Konsolenanwendung.
Das Entfernen des vshost-Prozesses, der auf die Datei zugreift, funktioniert die meiste Zeit nicht, da der Prozess nicht auf die Datei zugreift.
Die einfachste Problemumgehung, die funktioniert und am wenigsten Zeit in Anspruch nimmt, besteht darin, das Projekt aus der Lösung zu entfernen, ein weiteres Projekt in der Lösung zu erstellen und dann das Original wieder hinzuzufügen.
Es ist irritierend und Zeitverschwendung, aber es ist die billigste aller anderen Optionen, die ich kenne.
Hoffe das hilft...
quelle
Ich glaube, ich habe es gelöst, indem ich das Häkchen
Break all processes when one process breaks
in den Debug-Optionen entfernt habe (erster Screenshot von op-> zweite Option).Es hat eine Weile gut gebaut / funktioniert, seit ich es deaktiviert habe.
Ich verwende in meinem Projekt die Steuerelemente MySql NET Connector und DevExpress. Möglicherweise hat einer von ihnen Verbindungen, Bindungen usw. nicht gut entsorgt, da diese Flagge aktiviert wurde.
EDITIERT: definitiv funktioniert es! Keine 'Datei kann nicht kopiert werden' und keine Formulardesignerfehler mehr.
quelle
Fügen Sie im Pre-Build-Ereignis Ihres Masterprojekts taskkill / f / fi "pid gt 0" / im "YourProcess.vshost.exe" hinzu.
quelle
Mein 10 Cent Beitrag.
Ich habe immer noch gelegentlich dieses Problem bei VS 2015 Update 2.
Ich fand, dass das Wechseln des Kompilierungsziels das Problem löst.
Versuchen Sie Folgendes: Wenn Sie sich in DEBUG befinden, wechseln Sie zu RELEASE und Build, und kehren Sie dann zu DEBUG zurück. Das Problem ist weg.
Stefano
quelle
Befolgen Sie die folgenden Schritte
Oben Schritte Fehler dauerhaft behoben :)
quelle
Wenn keine der Antworten funktioniert, versuchen Sie diese einfache Überprüfung. Suchen Sie nach einer MSbuild.exe, die Ihr Projekt EXE ausführt und hält. Töte MSBuild.exe und du solltest bereit sein zu gehen.
quelle
Ich kann keine Lösung geben, um dies zu verhindern, aber Sie können die gesperrte Datei (Windows Explorer oder klassisches Befehlsfenster) zumindest umbenennen und dann kompilieren / erstellen. VS201x muss nicht neu gestartet oder neu gestartet werden. Mit etwas Erfahrung können Sie ein vorgefertigtes Skript hinzufügen, um alte Dateien zu löschen, oder umbenennen und dann aus dem Weg räumen, falls es eine Sperre gibt.
quelle
Siehe diese andere Antwort . Grundsätzlich können MSBuild.exe-Prozesse im Hintergrund ausgeführt werden, die Ressourcendateien verbrauchen. Wenn Sie Aufgaben vor oder nach dem Erstellen haben, die dazu führen, dass ein MSBuild über die Befehlszeile gestartet wird, fügen Sie diesem Befehl das Flag "/ nr: false" hinzu. Weitere Einzelheiten finden Sie in der vorherigen Antwort.
quelle
Ich endlich wie es zu beheben. Warum wir das Debuggen nach dem ersten Debuggen nicht fortsetzen können, weil die erste Debug-Exe noch läuft. Damit Sie nach dem ersten Debuggen zum Task-Manager -> Registerkarte "Prozess" -> [Ihr Projektname exe] gehen müssen, beenden Sie den exe-Prozess.
Für mich geht das :)
quelle
Die Antwort von @ Geoff ( https://stackoverflow.com/a/25251766/3739540 ) ist gut, wirft jedoch beim erneuten Kompilieren den Fehlercode 1 aus.
Folgendes hat bei mir funktioniert (2> nul 1> nul am Ende + Ausgang 0):
quelle
Wenn Sie T4-Vorlagen debuggen , geschieht dies ständig. Meine Lösung (bevor MS dies behebt) wäre nur, diesen Prozess abzubrechen:
Task-Manager -> Benutzer -> T4VSHostProcess.exe
Dieser Vorgang wird nur ausgeführt, wenn Sie eine T4-Vorlage debuggen, nicht, wenn Sie eine ausführen.
quelle
Hier ist ein Skript, um dieses Problem definitiv zu beseitigen:
Das Skript muss von jedem VS Build-Ereignis vor dem Erstellen aufgerufen werden.
quelle
[Arbeite für mich]
quelle
Diese Frage war das erste Ergebnis bei der Suche nach folgendem Fehler:
beim Erstellen in Visual Studio 2013 (Update 3).
Lösung: Deinstallieren der "Productivity Power Tools" in Visual Studio 2013.
https://connect.microsoft.com/VisualStudio/feedback/details/533411
quelle
In meinem Fall war es Resharper Unit Tests Runner (plus NUnit-Tests, hatte nie ein solches Problem mit MsTests). Nach dem Beenden des Prozesses konnte der Prozess ohne Neustart von OS oder VS2013 neu erstellt werden
quelle
JetBrains.Resharper.TaskRunner.*
Ich wusste nicht, dass ich immer noch meinen Debugger angehängt hatte und versuchte, dieselbe Visual Studio-Instanz zu erstellen. Nachdem ich den Debugger gestoppt hatte, konnte ich ihn erstellen.
quelle
Durch das Beenden der vstest.executionengine.exe- Prozesse wird dieses Problem in 90% der Fälle für mich behoben . Wenn dies nicht funktioniert, funktioniert es auch, QTAgent32.exe zu beenden und dann die Ordner / bin und / obj für das betreffende Projekt zu löschen.
Dies ist der irritierendste Teil meines Arbeitstages. :) :)
quelle
Für mich war es das Avast-Antivirenprogramm, mit dem Visual Studio keine Dateien schreiben / lesen / ausführen konnte. Daher musste ich der Antiviren-Ausschlussliste den Ordner Visual Studio 2010/2012 hinzufügen. Und gleich nach diesem Baam ... es funktioniert.
quelle
Stellen Sie sicher, dass Sie alle Instanzen wcfSvcHost schließen und versuchen Sie es erneut. Es hat bei mir funktioniert!
quelle