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.

wackelig
quelle
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.

DiligentKarma
quelle
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

Wahid Bitar
quelle
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.

jordenysp
quelle
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.

MuriloKunze
quelle
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.

Heitor Corrêa
quelle
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

Alejandro Haro
quelle
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!

Vikram
quelle
8

In meinem Fall war es das Antivirus, das die Datei blockierte.

Claudiu Constantin
quelle
BitDefender 6.2 hier
JOG
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
tomRedox
quelle
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.

Tigran
quelle
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!

Vinayak Savale
quelle
3

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

shawn
quelle
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

Henley Chiu
quelle
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.

David Leitner
quelle
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 ...

EdSF
quelle
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.

Portia
quelle
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.

InitialV
quelle
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
Madmartigan
quelle
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.

Ziggler
quelle
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.

Hazen Hills Software
quelle
2

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

Ramy Othman
quelle
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.

Joao Leme
quelle
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.

Ehsan
quelle
1

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

Rajan Kumar Kharel
quelle
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.

Manoj
quelle
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.

Rama Krshna Ila
quelle
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)

Krishna
quelle
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").

Bizhan
quelle
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.

Jon Willis
quelle