Immer wenn ich versucht habe, 4 Dateien in meinen bin-Ordner zu kopieren, wird nach dem Beenden des Hauptdienstes eine Fehlermeldung mit einer Datei (TexteDll) angezeigt. Der Fehler ist:
Cannot copy TexteDll: The requested operation cannot be performed on a file
with a user-mapped section open
Dies kann an einer Systemverriegelung liegen. Oder vielleicht verwendet ein anderer Prozess diese DLL. Als ich gegoogelt habe, habe ich festgestellt, dass ein Neustart des Systems dies beheben kann.
Kann jemand eine Ursache oder Lösung dafür vorschlagen? Ich habe die Eigenschaften von TexteDll (allgemein, Version, Sicherheit usw.) überprüft. Alles scheint normal zu sein.
Antworten:
In meinem Fall war es der Explorer, der die DLL sperrte, die im Debug-Ordner kompiliert wurde ... Seltsam, nicht wahr?
Ich habe es mit einem Tool namens Unlocker herausgefunden.
Musste mit Unlocker löschen, auch wenn gesagt wurde, dass es keine Sperre für die Datei gibt, und ich konnte den Ordner nicht löschen, bis ich diese einzelne Datei nicht gelöscht habe ...
Danach wurde es kompiliert.
BEARBEITEN:
Ich fand heraus, warum dies in meinem Fall geschah. Ich hatte die DLL in einem Texteditor in Visual Studio geöffnet ...
quelle
Wenn Sie auf eine Warnung über die Nichtübereinstimmung der referenzierten Baugruppenversion zwischen zwei oder mehr Projekten doppelklicken, vergessen Sie manchmal, das Fenster mit der Baugruppenansicht zu schließen, und es bleibt dort unter anderen Registerkarten. So wird die Baugruppe von VS selbst und gesperrt Ich habe ziemlich viel Zeit gebraucht, um das herauszufinden :)
Sei vorsichtig mit der Leistung, die VS bietet;)
quelle
Schließen Sie alle Dokumente in VS und versuchen Sie erneut, sie neu zu erstellen. Wenn es nicht funktioniert, starten Sie VS neu. Dieses Problem hängt mit der Sperre von DLL-Dateien zusammen.
quelle
Schließen Sie Visual Studio, löschen Sie den Bin, debuggen Sie den Release-Ordner und starten Sie das Visual Studio-Projekt erneut. das hat mein Problem behoben
quelle
Ich hatte das gleiche Problem und in meinem Fall schien es, dass die vorhandene Ausgabedatei von einer anderen Anwendung gesperrt wurde.
Sie können mit OpenedFilesView überprüfen, welche Anwendung Ihre Ausgabedatei sperrt: http://www.nirsoft.net/utils/opened_files_view.html
quelle
Ich bin Entwickler und mag keine Apps, die wie Unlocker in Registery injiziert wurden. Ich habe den SysInternals Process Explorer verwendet, der meine DLL gesperrt
Find > Find Handle or Dll [Ctrl-F]
und den Prozess abgebrochen hat .quelle
Andere haben bereits festgestellt, dass dieser Fehler darauf zurückzuführen ist, dass eine andere Anwendung die Datei gesperrt hat. Ich wollte nur darauf hinweisen, dass
git diff
Dateien ebenfalls gesperrt werden, bis Sie sie beenden. Das hat das in meinem Fall verursacht.quelle
Ich hatte das gleiche Problem. Wie ich es gelöst habe war:
quelle
Führen Sie eine Antivirensoftware aus? Möglicherweise hat die AV-Software (oder eine andere Software) die Datei mithilfe der Dateizuordnungs-APIs gelesen, die das Problem verursacht haben.
quelle
In meinem Fall musste ich einen hängenden
MSBuild.exe
Prozess beenden, der die Datei sperrte (er war auch nach dem Schließen von Visual Studio vorhanden).quelle
Das Löschen des obj-Ordners und das Wiederherstellen haben bei mir funktioniert
quelle
Ich hatte das gleiche Problem. Neustart hat bei mir nicht funktioniert. Im Task-Manager wurde ein Prozess namens VBSCompiler ausgeführt. Ich musste den Prozess beenden, um diesen Fehler zu beheben.
quelle
Keine der hier veröffentlichten Lösungen hat bei mir funktioniert. Es war devenv.exe (Visual Studio), das die Datei sperrte, aber wenn ich sie neu startete, wurde sie erneut gesperrt.
Seltsamerweise ließ Windows mich die Dateien nicht löschen (in den Papierkorb), aber Umschalt + Löschen (permanentes Löschen) funktionierte.
quelle
Schließen Sie das Visual Studio und führen Sie es als Administrator aus. Es ist mein Problem behoben.
quelle
Die Lösung für mich bestand darin, alle Instanzen von VS zu schließen und alle hängenden devenv.exe-Prozesse zu beenden.
quelle
Die Lösung für mich war, den Computer neu zu starten.
quelle
Es wurde darauf hingewiesen , im Jahr 2016 von Andrew Cuthbert , dass git diff Sperren - Dateien sowie , bis Sie davon verlassen werden.
Dies wird bei Git 2.23 (Q3 2019) nicht der Fall sein.
Siehe Commit 3aef54e (11. Juli 2019) von Johannes Schindelin (
dscho
) .(Zusammengeführt von Junio C Hamano -
gitster
- in Commit d9beb46 , 25. Juli 2019)quelle
Ich habe diese Fehler beim Erstellen von Dot Net-Anwendungen mit Ant gesehen.
In meinem Fall war es unsere Unternehmens-Backup-Software, der Symantec DLO Agent. Das Stoppen und Ausschließen des Verzeichnisses in meiner Antivirensoftware und das Schließen von Visual Studio scheint zu funktionieren.
quelle
in meinem Fall den obj-Ordner im Projektstamm gelöscht und das Projekt neu erstellt hat mein Problem gelöst !!!
quelle
Ich bin auf diesen Fehler gestoßen und es stellte sich heraus, dass das Problem darin bestand, dass FxCop für mein Projekt ausgeführt wurde. Ich habe FxCop geschlossen und konnte dann wieder kompilieren.
quelle
Wenn es sich um eine Webanwendung handelt, kann das Löschen von Dateien im Ordner "Temporäre ASP.NET-Dateien" eine Lösung sein.
quelle
Wenn Sie Profiler wie AQ Time verwenden, sperren diese möglicherweise auch die Datei. In diesem Fall besteht die Lösung darin, den Profiler neu zu starten oder die betreffende Baugruppe einfach aus dem Profiler zu entladen / zu laden. Für AQ Time habe ich festgestellt, dass die Datei nach einiger Zeit veröffentlicht wird, aber ich kann für mein ganzes Leben nicht sagen, wie hoch diese Zeitüberschreitung ist. Scheint zufällig zu sein
quelle
Ich habe heute auch den gleichen Fehler bekommen. Ich habe dieses Problem behoben, indem ich das Projekt neu erstellt habe.
quelle
Ich hatte diesen Fehler, der durch eine fragliche "more" vs-Datei verursacht wurde, die in einer anderen Konsole ausgeführt wurde. Hoppla.
quelle
Keiner der oben genannten Punkte hat dieses Problem gelöst.
Jemand hatte ein Projekt in meiner Lösung so eingestellt, dass es x64-CPU in der Build-Konfiguration verwendet. Das Ändern in eine beliebige CPU führte dazu, dass der Build einen neuen Ordner verwendete. Ich weiß immer noch nicht, welcher Prozess diese Datei gesperrt hat (hat).
quelle
Ich hatte das gleiche Problem. Ich habe die DLL aus dem temporären Ordner entfernt, den schreibgeschützten Zugriff entfernt und den Computer neu gestartet und zum Laufen gebracht.
quelle
In meinem Fall schließe ich einfach alle Instanzen und kopiere meinen Stammanwendungsordner und füge ihn an einer anderen Stelle ein. Dann öffne ich die Lösung in VS, es funktioniert ....
quelle
Mein Problem wurde auch durch Durchsuchen des Prozess-Explorers gelöst. Der Prozess, den ich beenden musste, war jedoch die MySQL Notifier.exe, die nach dem Schließen aller VS- und SQL-Anwendungen noch ausgeführt wurde.
quelle