Datei kann nicht kopiert werden - Zugriff auf den Pfad wird verweigert


238

Ich verwende Visual Studio 2005. Nachdem Sie zuerst den Code aus der Versionskontrolle übernommen haben, wird die Anwendung c # .net ordnungsgemäß ausgeführt. Nach einigen Änderungen wird beim Erstellen jedoch der folgende Fehler angezeigt:

Fehler 383 Datei ".. \ root \ leaf \ Bin \ Debug \ test.Resources.xml" kann nicht nach "Bin \ Debug \ test.Resources.xml" kopiert werden. Der Zugriff auf den Pfad 'Bin \ Debug \ test.Resources.xml' wird verweigert. li.rollmodel

Weiß jemand, warum dieses Problem auftritt?

Bearbeiten Ich kann sehen, dass mein gesamter Projektquellcodeordner schreibgeschützt ist und ich die schreibgeschützte Eigenschaft nicht entfernen kann.

Kann mir zunächst jemand sagen, wie die schreibgeschützte Eigenschaft für diesen Ordner entfernt werden soll? Ich habe versucht, es zu entfernen, aber die schreibgeschützte Eigenschaft bleibt bestehen. Ich habe es auch von der Seite der Versionskontrolle aus versucht und das hat auch nicht funktioniert.


Befindet sich dies auf einer Netzwerkfreigabe? Haben Sie Administratorzugriff auf Ihrem Computer? Diese Frage passt möglicherweise besser zu Serverfehlern oder Superusern.
Arunkumar

nein ,, ich benutze meinen eigenen Computer Ich habe Administratorzugriff
Ricky

Ich habe dieses Problem gelöst, indem ich die Datei manuell von einem Speicherort an den gewünschten Speicherort kopiert habe. Wahrscheinlich hängt das Problem mit MSBUILD mit schreibgeschützter Datei zusammen
ricky

Antworten:


276

Ich habe dieses Problem gelöst, indem ich die umstrittenen Dateien aus dem Ordner bin gelöscht und das Projekt neu erstellt habe.


50
alte Post, ich weiß, aber ich hatte gerade das gleiche Problem. Stellen Sie sicher, dass VS auch geschlossen ist, da es in einigen Fällen den Zugriff zum Löschen des Ordners verweigert
Eon

1
Kleiner Hinweis: Ich habe zunächst nicht verstanden, dass ich diese Dateien im Ausgabeordner des Hauptprojekts und nicht im Ausgabeordner der DLL löschen muss. Also, Warnung hier :)
Piero Alberto

6
In meinem Fall reichte es nicht aus, VS zu schließen, um den Ordner freizugeben und zu löschen. ProcessExplorer zeigte, dass "VBCSCompiler.exe" ihn noch verwendete. In diesem Fall hat das Abmelden von und bei Windows (oder das Beenden des Prozesses) den Trick getan, sodass ich die Lösung neu erstellen und alles wieder zum Laufen bringen konnte.
S. Jensen

2
In meinem Fall war der Grund, warum Ordner und Lösung zu ReadOnly wurden und VS anschließend Probleme beim Erstellen hatte, der, dass einige Dateien nicht mit GoogleDrive synchronisiert werden konnten und durch diesen Prozess irgendwie gesperrt wurden. Damit ich richtig neu erstellen konnte, musste ich GoogleDrive schließen und dann funktionierte es einwandfrei.
Konrad

1
Ich fand Bitdefender Antivirus Free als Schuldigen.
Warwick

123

Stellen Sie einfach sicher, dass der Ordner NICHT schreibgeschützt ist, und erstellen Sie die Lösung neu


12
Ich versuche, das mit grüner Farbe gefüllte Kontrollkästchen "Schreibgeschützt" zu entfernen. Wenn ich auf "Übernehmen" und dann auf "OK" klicke und dann die Eigenschaften dieses Ordners erneut überprüfe, kann ich wieder den vorherigen Status sehen (wobei das Kontrollkästchen "Schreibgeschützt" wieder mit grüner Farbe gefüllt ist). Hat jemand eine Lösung dafür?
Vikram

Stellen Sie außerdem sicher, dass die Datei nicht gesperrt ist. In meinem Fall befand sich die Datei auf einer Freigabe und wurde von jemand anderem geöffnet.
Dan Bechard

Schließen Sie Visual Studio, bevor Sie das schreibgeschützte Attribut entfernen. Weil die fragliche Datei möglicherweise verwendet wird (gesperrt)
Gautam Jain

4
Erstellt eine Visual Studio-Erweiterung zum Löschen der Attribute ReadOnly und Hidden von DLLs, die den Build blockieren. UnBlockDllExtension: marketplace.visualstudio.com/...
vrnithinkumar

69

Ich habe dieses Problem gelöst: Schließen Sie Visual Studio, öffnen Sie es erneut und laden Sie die Lösung. Erstellen Sie Ihre Lösung neu. Mein Problem trat bei Verwendung von TFS und VIsual Studio 2010 auf.


22
Fügen Sie das gleiche Problem in VS2013 hinzu. Klassischer Fall von The IT Crowd. "Hallo, das ist IT. Haben Sie versucht, es aus- und wieder einzuschalten?"
Maxime Rouiller

1
Gleiches Szenario: TFS und VS 2010. Das gleiche Problem. Die gleiche Lösung. +1
Ajeh

2
Dies geschah auch auf VS2015: p
Yoo Matsuo

4
Und das gleiche in VS2017
arame3333

1
Ich war schon verrückt, als ich versuchte, das zu beheben, stellte mir die gute alte Methode heraus, wenn etwas nicht funktioniert, startete es neu, funktionierte
einwandfrei

50

Prozess VBCSCompiler.exebeenden und neu erstellen.


3
Das hat es für mich gelöst. Vielen Dank, freundlicher Fremder: D
Morsus

Ja, das ist es.
Kal Kokah

Vielen Dank, du freundlicher Fremder! : D
Agent007

Manchmal hat es bei mir nicht immer funktioniert, ich muss sagen, es wird einen Teil dieses Problems lösen. Es gibt noch etwas anderes, das dieses Problem verursacht
Amit Bisht

Versuchen Sie dies auch, es kann Ihnen helfen, stackoverflow.com/a/12740768/2445111
Amit Bisht

23

Ich bin auch auf dieses Problem eingegangen.

Überprüfen Sie zunächst, ob Sie Ihren Ordner bin und obj dem Quellcodeverwaltungsprogramm zugeordnet haben.

Dies kann dazu führen, dass Ihre Dateien aus Binärordnern in schreibgeschützte Archive umgewandelt werden, die es Visual Studio unmöglich machen, sie beim Kompilieren des Codes zu überschreiben.

Entfernen Sie die Zuordnung aus diesen Ordnern, überprüfen Sie die Änderungen und versuchen Sie es erneut.

Mein Problem trat bei Verwendung von TFS (Team Foundation Server) und Visual Studio 2010 auf.

Hoffe das hilft jemandem.


1
Ich wollte nur hinzufügen, dass die Antwort von Heitorolecarte mein Problem behoben hat und dies bei Visual Studio 2012 und TFS2010 auftreten kann.
Rodney

20

Führen Sie Ihr Visual Studio als Administrator aus


1
Hinweis: Hier ist eine kurze und einfache Möglichkeit, standardmäßig immer als Administrator zu arbeiten. Stackoverflow.com/questions/12257110/…
wmebane

Diese Antwort sagte mir genug, dass ich wusste, dass ich "Benutzern" in meinem Ausgabeordner nur eine Schreibberechtigung hinzufügen musste - und das löste sofort mein Problem (das war, dass ich nicht einmal beim ersten Mal veröffentlichen konnte).
X Goodrich

9

Ich verwende Visual Studio 2013. Dieses Problem trat zweimal auf:

  1. Beim ersten Mal habe ich Visual Studio ohne Administratorrechte ausgeführt. Also habe ich VS geschlossen und es mit der Option " Als Administrator ausführen" gestartet . Dies löste mein Problem.

  2. Beim zweiten Mal habe ich VS viele Male neu gestartet, um sicherzustellen, dass ich es als Administrator ausführe. Außerdem habe ich die Lösung viele Male neu erstellt. Trotzdem bekam ich Fehler. Danach habe ich die betroffene Datei vom Zielspeicherort entfernt (die Datei war möglicherweise bereits vorhanden und stammt möglicherweise aus dem vorherigen Build an dem Speicherort, an den sie kopiert werden soll) und die Lösung neu erstellt . Danach verschwand der Fehler und alles lief reibungslos!



7

Dies hat in Visual Studio 2017 den Kopf wieder aufgerichtet. In diesem Fall ist die Ursache der Application Insights-Prozess ServiceHub.DataWarehouseHost.exe.

In der Thread- Warnung MSB3026 wird eine Problemumgehung erläutert: "obj \ Debug \ netcoreapp1.1 \ src.pdb" konnte nicht nach "bin \ Debug \ netcoreapp1.1 \ src.pdb" kopiert werden , um einen Pre-Build hinzuzufügen Ereignis für das Projekt, um den Prozess jedes Mal abzubrechen, wenn das Projekt erstellt wird. Zitat aus diesem Link:

  • Klicken Sie mit der rechten Maustaste auf Eigenschaften des Projekts
  • Wählen Sie Eigenschaften
  • Ereignisse erstellen
  • Ereignisbefehlszeile vorab erstellen
taskkill /IM ServiceHub.DataWarehouseHost.exe /F 2>nul 1>nul
Exit 0
  • Speichern und erstellen

6

Kann jemand wissen, warum dieses Problem auftritt?

Wenn Sie sich Ihre Antwort ansehen, dass Sie Ihr Problem durch manuelles Kopieren gelöst haben, würde ich sagen, dass der Code, an dem Sie gearbeitet haben, von einem anderen Benutzer (auch mit Administratorrechten) erstellt wurde, sodass er für Sie gesperrt war. Durch Kopieren -? Einfügen, Sie haben Ihre EIGENE Kopie der Quelle mit allen erforderlichen Zugriff erstellt. Das Einzige, was Sie bemerken müssen, ist, dass in diesem Fall, wenn dieser andere Entwickler an Ihrer Kopie arbeiten muss, er / sie in das gleiche Problem gerät, das Sie zuvor hatten.


6

Gehen Sie zuerst zum Speicherort der Datei. Klicken Sie dann mit der rechten Maustaste auf den Ordner der Datei -> Eigenschaften -> Deaktivierte schreibgeschützte Option und wenden Sie sie auf Dateien und deren Unterordner an. Es hat mein Problem gelöst. Viel Spaß beim Codieren!


3

Ich habe alle meine Nicht-.NET-Abhängigkeiten / Referenzen erneut hinzugefügt und es hat den Trick gemacht.


3

Ich habe dieses Problem selbst gelöst. Das Problem war, dass ich die Lösung an einem anderen Ort geöffnet hatte. Nach dem Schließen funktioniert es


Ich habe das auch gemacht. Überprüfen Sie immer zuerst die offensichtlichen einfachen Dinge. Mein Ziel befand sich auf einem Netzwerklaufwerk, da ich auf einem anderen Computer debuggte.
Simon Unsworth

3

Hatte das gleiche Problem, aber jedes Mal einen Neustart von Visual Studio war für mich keine Option , da das Problem manchmal sehr oft auftritt.

Ich habe es durch die Installation von Unlocker erledigt ( versucht, eine Symbolleiste bei der Installation zu installieren, vergessen Sie also nicht, dies zu deaktivieren ). Diese Anwendung ermöglicht mir einen schnellen Zugriff zum Umbenennen / Löschen einer gesperrten ".xml" -Datei . Ich weiß, dass dies auch nur eine Problemumgehung ist, aber für mich war es die schnellste Lösung, um dieses Problem zu lösen.


Danke dafür. Ich hatte dieses Problem im letzten Jahr und dachte, es wäre, weil ich zwischen Administrator und nicht wechseln würde, aber jetzt weiß ich, dass es ein dummer kritischer Prozess im Zusammenhang mit Panda Antivirus (PSANHost.exe, nicht im Task-Manager vorhanden) ist, der das Problem gesperrt hat Dateien.
Yeejuto

3

Alter Beitrag, aber dieser Zombie trifft VS 2017 (ich habe nicht untersucht, warum es nur "einige" Projekte sind). In diesem Fall handelt es sich nicht um Benutzerberechtigungen , sondern der IIS Express-Prozess verwendet die Dateien weiterhin.

Sie sehen das Symbol in Ihrer Taskleiste IIS Express-Symbol

  1. Rechtsklick
  2. Ausgang
  3. Sie sollten in der Lage sein, rebuildohne diese nervige Meldung "Erlaubnis verweigert".

Aus diesem Grund wird das Problem durch "Neustarten von Visual Studio" "behoben". Dadurch wird IIS Express gestoppt.

Hth ...


2

Ich habe dieses Problem erstellt, als ich der Lösung ein neues Setup-Projekt hinzugefügt und dann Dateien direkt aus dem Ordner / bin / release des Hauptanwendungsprojekts zum Ordner mit den Anwendungsdateien des Setup-Projekts hinzugefügt habe. Die Quellcodeverwaltung des Setup-Projekts hat mich durchweg daran gehindert, einen Build des Hauptanwendungsprojekts abzuschließen.

Lösung: Erstellen Sie einen separaten Speicherauszugsordner außerhalb eines der Projekte, der alle Dateien enthält, die in die Installation aufgenommen werden sollen, und fügen Sie sie von dort aus hinzu. Es ist ein Schmerz, weil ich jetzt daran denken muss, alle Dateien für jedes neue Installationspaket zu kopieren. Ich werde vielleicht sehen, ob ich mit Post-Build-Aktionen etwas tun kann, um den Prozess reibungsloser zu gestalten.


2

Wenn Sie Dateien in eine Lösung kopieren, stellen Sie sicher, dass sich die Dateien nicht im schreibgeschützten Modus befinden. Klicken Sie mit der rechten Maustaste auf die Datei und deaktivieren Sie die Attributoption, um mein Problem zu lösen.


2

Ich hatte den gleichen Fehler, verwende jedoch die Perforce- Versionskontrolle. Hier ist, wie ich es behoben habe.

  1. Geschlossen Perforce P4V Client
  2. Visual Studio 2010 neu gestartet (möglicherweise nicht erforderlich)
  3. Das Projekt wurde neu erstellt, was erfolgreich war
  4. Fühlte mich außergewöhnlich glücklich und gleichzeitig angewidert

1
Ich habe das gleiche Setup, konnte aber nicht zu den Schritten 3 und 4 gelangen :(
user3260977

2

Ich hatte auch das gleiche Problem. Ich habe Fehlermeldungen erhalten, die sich nicht auf kopieren lassen, da der Zugriff auf den Pfad verweigert wurde. In meinem Fall befinden sich alle meine DLLs und XML-Dateien usw. im Ordner D: \ TFS \ Example \ Bin \ Debug.

Ich habe mit der rechten Maustaste auf den Ordner Bin geklickt und auf Eigenschaften geklickt und festgestellt, dass das Kontrollkästchen Schreibgeschützt unter Attribute aktiviert ist.

Ich habe das Kontrollkästchen Schreibgeschützt deaktiviert und auf Übernehmen geklickt und im angezeigten neuen Popup auf OK geklickt.

Ich ging zurück zu Visual Studio und erstellte meine Lösung, die mir Fehlermeldungen gab.

Voilaa .. Dieses Mal wurde es ohne Fehler erfolgreich erstellt.

Ich weiß nicht, ob dies perfekt ist, aber ich habe dies getan, um mein Problem zu lösen.


2

Überprüfen Sie den Task-Manager und stellen Sie sicher, dass kein Prozess devenv.exe hängt. Beenden Sie den außer Kontrolle geratenen Prozess und versuchen Sie es erneut.


2

Gehen Sie zum Dateipfad und deaktivieren Sie das Kontrollkästchen "Nur Lesen" dieser Datei.


1

Ich weiß, dass es ein alter Thread ist, aber für diejenigen, die nach Antworten suchen, wie ich vor ein paar Minuten, empfehle ich, zuerst zu versuchen, Ihren Computer neu zu starten. Das allein hat für mich behoben. Vorher konnte nicht einmal manuell in den Ordner kopiert werden.


1
hat mir auch geholfen. 2020 Gang
Vitor Ceolin

1

Klicken Sie einfach mit der rechten Maustaste auf Ihr MVC-Projekt und klicken Sie auf die Option "Bereinigen". Ich hatte ein ähnliches Problem und das Bereinigen des Projekts vor dem Wiederaufbau löste es für mich.


1

Ich hatte auch das gleiche Problem. Ich habe es behoben, indem ich die schreibgeschützten Eigenschaften des Stammordners deaktiviert habe.


Manchmal ist die Lösung so einfach und offensichtlich. Anstatt weiter mit dem Kopf zu schlagen und an komplexen und endlosen Prozeduren zu arbeiten, prüfen Sie einfach diese einfachen Möglichkeiten, und Ihr Leben wird viel einfacher. Ich bin StackOverflow dankbar, dass sie uns eine so große Expertengemeinschaft zur Verfügung gestellt haben, die uns in verzweifelten Momenten die notwendige Hilfe anbieten kann.
Choudhury Saadmaan Mahmid

1

Ich hatte auch dieses Problem. Hier ist, wie dies gelöst wird

  • Ausschließen binvon Projektordnern.
  • Visuelles Studio schließen.
  • Datenträgerbereinigung des Laufwerks C.
  • Projekt im Visual Studio erneut öffnen.
  • Und dann die Lösung neu erstellen.
  • Projekt ausführen.

Dieser Prozess funktioniert bei mir.



1

Ich konnte das Problem beheben, indem ich die beanstandete Zieldatei (in Ihrem Beispiel "Bin \ Debug \ test.Resources.xml") aus dem Ordner bin der Zielwebsite entfernte und neu erstellte. Dadurch wurde das Problem für mich behoben.


1

1) Schließen Sie die Visual Studio-Lösung

2) Navigieren Sie zur Eingabeaufforderung -> Als Administrator ausführen -> iisreset / stop

3) Navigieren Sie zu c -> Windows -> Microsoft.Net -> Framework64 -> v4.030319 -> Temporäre Asp.NET-Dateien -> Löschen Sie alle Dateien und Ordner in diesem Pfad.

4) Navigieren Sie zurück zur Eingabeaufforderung -> iisreset / start

5) Öffnen Sie nun das Visual Studio -> führen Sie es als Administrator aus -> bereinigen Sie die Lösung und erstellen Sie sie (nicht neu erstellen ... nur das Erstellen hat bei mir funktioniert)


0

Sie sollten das Ordnerattribut nicht in nicht schreibgeschützt ändern. Der Grund, warum diese Fehlermeldung angezeigt wird, ist, dass die Quellcodeverwaltung davon ausgeht, dass Sie Ihre verschiedenen Dateien nur an einem anderen Ort als dem Ordner bin speichern. Sie ist für Dateien reserviert, die automatisch von .Net erstellt werden, und sie möchten sie nicht zur Quelle hinzufügen Steuerung.

Ich schlage vor, anstelle von Environment.CurrectDirectory(von dem ich annehme, dass Sie es derzeit verwenden) einen Ordner mit dem Namen "MyProjectName" in% appdata% address zu erstellen und dann Folgendes zu verwenden:

System.IO.Path.Combine(Environment.GetEnvironmentVariable("appdata"),"YourProjectName").


0

Ich bin also auf dasselbe Problem gestoßen, das meine Ursache war. Ich hatte meinen Entwicklungsordner freigegeben, damit ich einen Mac als Build-Host für eine IOS-Anwendung mit Xamarin verwenden konnte. Das Projekt lief auf einem Mac, der den Besitz der DLL übernahm, daher konnte ich von nirgendwo anders Änderungen an dieser DLL vornehmen. Durch einfaches Stoppen der Anwendung auf dem Mac wurde mir das Eigentum zurückgegeben, wodurch der vollständige Zugriff wieder möglich wurde. Ich hoffe das macht da.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.