Impossibile copiare il file: accesso al percorso negato


238

Sto usando Visual Studio 2005. Dopo aver preso prima il codice dal controllo di versione, l'applicazione c # .net funziona correttamente. Ma, dopo aver apportato alcune modifiche, quando costruisco ottengo il seguente errore:

Errore 383 Impossibile copiare il file ".. \ root \ leaf \ Bin \ Debug \ test.Resources.xml" in "Bin \ Debug \ test.Resources.xml". L'accesso al percorso 'Bin \ Debug \ test.Resources.xml' è negato. li.rollmodel

Qualcuno sa perché si sta verificando questo problema?

Modifica Posso vedere che tutta la mia cartella del codice sorgente del progetto è di sola lettura e non riesco a rimuovere la proprietà di sola lettura.

Innanzitutto, qualcuno può dirmi come rimuovere la proprietà di sola lettura per questa cartella? Ho provato a rimuoverlo ma la proprietà di sola lettura persiste. Ho provato anche dal punto di vista del controllo delle versioni e neanche quello ha funzionato.


È su una condivisione di rete? Hai accesso amministrativo sulla tua macchina? Questa domanda potrebbe adattarsi meglio a serverfault o superuser.
Arunkumar,

no ,, sto usando la mia macchina ho accesso amministrativo
ricky

ho risolto il problema copiando manualmente il file da una posizione alla posizione richiesta, probabilmente il problema è legato a MSBUILD con file di sola lettura
ricky

Risposte:


277

Ho risolto questo problema eliminando i file controversi dalla cartella bin e ricostruendo il progetto.


50
vecchio post, lo so, ma ho avuto lo stesso problema proprio ora. Assicurati che anche VS sia chiuso in quanto negherà l'accesso per eliminare la cartella in alcuni casi
Eon,

1
Piccola nota: all'inizio non ho capito, devo eliminare questi file nella cartella di output del progetto principale e non nella cartella di output della dll. Quindi, attenzione qui :)
Piero Alberto

6
Nel mio caso, anche chiudere VS non è stato sufficiente per liberare la cartella e permettermi di eliminarla - ProcessExplorer ha mostrato che "VBCSCompiler.exe" lo stava ancora usando. In questo caso, disconnettersi da e verso Windows (o semplicemente uccidere il processo) ha funzionato, permettendomi di ricostruire la soluzione e far funzionare di nuovo tutto.
S. Jensen,

2
nel mio caso il motivo per cui la cartella e la soluzione si sono trasformate in ReadOnly e successivamente VS ha avuto problemi a costruirlo, è stato perché alcuni file non sono riusciti a sincronizzarsi con Google Drive e in qualche modo sono stati bloccati da quel processo. Quindi per ricostruire correttamente ho dovuto chiudere GoogleDrive e poi ha funzionato bene.
Konrad,

1
Ho trovato Bitdefender Antivirus Free il colpevole.
Warwick l'

123

Assicurati solo che la cartella NON sia di sola lettura e ricostruisci la soluzione


12
Sto cercando di rimuovere la casella di controllo "Sola lettura" piena di colore verde. Quando faccio clic su "Applica" e poi su "OK", quindi controllo nuovamente le proprietà di quella cartella, posso vedere di nuovo nello stato precedente (ancora una volta che la casella di controllo "Sola lettura" è riempita di colore verde). Qualcuno ha una soluzione su questo?
Vikram,

Inoltre, assicurarsi che il file non sia bloccato. Nel mio caso, il file era su una condivisione e qualcun altro lo aveva aperto.
Dan Bechard,

Chiudere Visual Studio prima di rimuovere l'attributo di sola lettura. Perché il file in questione potrebbe essere in uso (bloccato)
Gautam Jain

4
Creata un'estensione di Visual Studio per cancellare l'attributo ReadOnly e Hidden delle dll che bloccano la build. UnBlockDllExtension: marketplace.visualstudio.com/…
vrnithinkumar

69

Ho risolto questo problema: chiudi Visual Studio, riaprilo e carica la soluzione, ricostruisci la tua soluzione. Il mio problema si è verificato utilizzando TFS e VIsual Studio 2010.


22
Aggiungi lo stesso problema in VS2013. Caso classico di The IT Crowd. "Ciao, sono IT, hai provato a spegnerlo e riaccenderlo?".
Maxime Rouiller,

1
Stesso scenario: TFS e VS 2010. Lo stesso problema. La stessa soluzione +1
aje

2
Questo è successo anche su VS2015: p
Yoo Matsuo

4
E lo stesso in VS2017
arame3333

1
Sono già impazzito nel tentativo di risolvere questo problema, ho scoperto il buon vecchio metodo se qualcosa non funziona,
riavvialo

50

Uccidi il processo VBCSCompiler.exee ricostruiscilo.


3
Questo è ciò che ha risolto per me. Grazie gentile estraneo: D
Morsus

sì, eccolo.
kal kokah,

Grazie mille, gentile estraneo! : D
Agent007,

a volte ha funzionato per me non sempre, devo dire che risolverà una parte di questo problema, c'è anche qualcos'altro che sta causando questo problema
Amit Bisht,


23

Ho affrontato anche questo problema.

Prima vai e controlla se hai mappato la cartella bin e obj al programma di controllo del codice sorgente.

Questo potrebbe trasformare i tuoi file dalle cartelle binarie in archivi di sola lettura, il che rende impossibile a Visual Studio di sovrascriverli quando compila il codice.

Vai e rimuovi la mappatura da queste cartelle, controlla le modifiche e riprova.

Il mio problema si è verificato utilizzando TFS (Team Foundation Server) e Visual Studio 2010.

Spero che questo aiuti qualcuno.


1
Volevo solo aggiungere che la risposta di Heitorolecarte ha risolto il mio problema e questo può accadere con Visual Studio 2012 e TFS2010.
Rodney,

20

Esegui Visual Studio come amministratore


1
Nota: ecco un modo breve e semplice per sempre eseguito come amministratore di default stackoverflow.com/questions/12257110/...
wmebane

Questa risposta mi disse abbastanza che sapevo solo aggiungere il permesso di scrittura a "Utenti" sulla mia cartella di output - e questo risolse immediatamente il mio problema (che non potevo pubblicare nemmeno la prima volta).
X Goodrich,

9

Uso Visual Studio 2013. Ho riscontrato questo problema 2 volte:

  1. Alla prima occasione, eseguivo Visual Studio senza diritti di amministratore. Quindi, ho chiuso VS e l'ho avviato usando l'opzione ' Esegui come amministratore '. Questo ha risolto il mio problema.

  2. In una seconda occasione, ho riavviato VS più volte, ogni volta assicurandomi di eseguirlo come amministratore. Inoltre, ho ricostruito la soluzione molte volte. Ma, nonostante ciò, stavo ricevendo un errore. Successivamente, ho rimosso il file in questione dalla posizione di destinazione (il file era già presente potrebbe essere dalla build precedente nella posizione in cui tenta di copiare) e ricostruito la soluzione . Successivamente, l'errore è scomparso e tutto è andato per il meglio!



7

Ciò ha riportato di nuovo la sua testa in Visual Studio 2017, in questo caso la causa è il processo di Application Insights ServiceHub.DataWarehouseHost.exe.

C'è una soluzione alternativa discussa nell'avviso di thread MSB3026: impossibile copiare "obj \ Debug \ netcoreapp1.1 \ src.pdb" in "bin \ Debug \ netcoreapp1.1 \ src.pdb" , che consiste nell'aggiungere un pre-build evento al progetto per terminare il processo ogni volta che il progetto viene creato. Citando da quel link:

  • Proprietà clic destro sul progetto
  • Scegli le proprietà
  • Crea eventi
  • Riga di comando dell'evento pre-build
taskkill /IM ServiceHub.DataWarehouseHost.exe /F 2>nul 1>nul
Exit 0
  • Salva e costruisci

6

Qualcuno può sapere perché questo problema sta arrivando?

Guardando alla tua risposta che hai risolto il tuo problema copiando manualmente, direi che il codice su cui stavi lavorando è stato creato da un altro utente (anche con i privilegi di amministratore), quindi ti è stato bloccato. Eseguendo copia -? incolla, hai effettuato la tua PROPRIA copia della fonte con tutti gli accessi richiesti. L'unica cosa da notare è che, in questo caso, se questo altro sviluppatore dovrà lavorare sulla tua copia, salterà nello stesso problema che hai avuto prima.


6

Per prima cosa vai alla posizione del file. Quindi fare clic con il tasto destro sulla cartella del file -> Proprietà -> Opzione di sola lettura non selezionata e applicare ai file e alle sue sottocartelle. Ha risolto il mio problema. Buona programmazione!


3

Ho aggiunto nuovamente tutte le mie dipendenze / riferimenti non -.NET e ha funzionato.


3

Ho risolto questo problema da solo. Il problema era che avevo aperto la soluzione in un altro posto. Dopo averlo chiuso funziona


L'ho fatto anche io. Controlla sempre prima le cose ovvie facili, la mia destinazione era su un'unità di rete, mentre stavo eseguendo il debug su un'altra macchina.
Simon Unsworth, il

3

Aveva lo stesso problema, ma riavviare Visual Studio ogni volta non era un'opzione per me , poiché il problema si verifica a volte molto spesso.

L'ho gestito installando Unlocker ( tenta di installare qualsiasi barra degli strumenti durante l'installazione, quindi non dimenticare di deselezionarlo ), questa applicazione mi dà un accesso veloce per rinominare / eliminare un file ".xml" bloccato . So che anche questa è solo una soluzione alternativa, ma per me è stata la soluzione più veloce per risolvere questo problema.


Grazie per questo. Ho avuto questo problema nell'ultimo anno e ho pensato che fosse perché avrei cambiato tra Amministratore e non, ma ora so che è uno stupido processo critico correlato a Panda Antivirus (PSANHost.exe, non presente in Task Manager) che ha bloccato il File.
yeejuto,

3

Vecchio post, ma questo zombi sta colpendo VS 2017 (non ho scavato perché sono solo "alcuni" progetti). In questo caso, non si tratta delle autorizzazioni dell'utente , ma il processo IIS Express utilizza ancora i file.

Vedrai l'icona nella barra delle applicazioni Icona IIS Express

  1. Tasto destro
  2. Uscita
  3. Dovresti essere in grado di farlo rebuildsenza questo fastidioso messaggio "permesso negato".

Questo è anche il motivo per cui "il riavvio di Visual Studio" risolverà il problema. In questo modo, si interrompe IIS Express.

Hth ...


2

Ho creato questo problema quando ho aggiunto un nuovo progetto di installazione alla soluzione, quindi ho aggiunto i file direttamente dalla cartella / bin / release del progetto dell'applicazione principale alla cartella dei file dell'applicazione del progetto di installazione. Il controllo del codice sorgente del progetto di installazione mi stava costantemente impedendo di completare una build del progetto principale dell'applicazione.

Soluzione: creare una cartella di dump separata all'esterno di qualsiasi progetto che conterrà tutti i file da includere nell'installazione e aggiungerli da lì. È un dolore perché ora devo ricordare di copiare tutti i file per ogni nuovo pacchetto di installazione. Potrei vedere se posso fare qualcosa con le azioni post-build, una nostra build automatizzata per rendere il processo più fluido.


2

Se si copiano file su una soluzione, assicurarsi che i file non siano in modalità Sola lettura. Fare clic con il tasto destro sul file e deselezionare l'opzione dell'attributo risolto il mio problema.


2

Ho avuto lo stesso errore ma sto usando il controllo della versione di Perforce . Ecco come l'ho risolto.

  1. Chiuso Perforce P4V cliente
  2. Riavviato Visual Studio 2010 (potrebbe non essere necessario)
  3. Ricostruito il progetto, che è riuscito
  4. Ci siamo sentiti eccezionalmente felici e disgustati allo stesso tempo

1
Ho la stessa configurazione, ma non riesco ad andare ai passaggi 3 e 4 :(
user3260977

2

Ho avuto anche lo stesso problema. Ho ricevuto messaggi di errore relativi a impossibile copiare poiché è stato negato l'accesso al percorso. Nel mio caso tutti i miei file dll e xml e così via si trovano nella cartella D: \ TFS \ Example \ Bin \ Debug.

Ho fatto clic con il tasto destro sulla cartella Bin e ho fatto clic su Proprietà e ho visto che la casella di controllo Sola lettura è selezionata in Attributi.

Ho deselezionato la casella di controllo Sola lettura e cliccato Applica e ho fatto clic su OK nel nuovo popup visualizzato.

Sono tornato a Visual Studio e ho creato la mia soluzione che mi dava messaggi di errore.

Voilaa .. Questa volta si costruisce con successo senza errori.

Non so se sia perfetto, ma l'ho fatto per risolvere il mio problema.


2

Controllare Task Manager e assicurarsi di non avere un processo devenv.exe sospeso. Uccidi il processo in fuga e riprova.


2

Vai al percorso del file quindi deseleziona la casella di controllo sola lettura di questo file.


1

So che è un vecchio thread, ma per coloro che cercano risposte, come me qualche minuto fa, consiglio di provare prima a riavviare il computer. Questo da solo risolto per me. Prima non riuscivo nemmeno a copiare manualmente nella cartella.


1
anche mi ha aiutato. Banda 2020
Vitor Ceolin,

1

Basta fare clic destro sul progetto MVC e fare clic sull'opzione clean. Ho avuto un problema simile e la pulizia del progetto prima della ricostruzione lo ha risolto per me.


1

Ho avuto anche lo stesso problema. L'ho risolto deselezionando le proprietà di sola lettura della cartella principale.


A volte la soluzione è semplice ed ovvia come questa. Invece di continuare a sbattere la testa e aggirare procedure complesse e infinite, basta verificare questo tipo di possibilità semplici e la tua vita diventerà molto più facile. Sono grato a StackOverflow per averci fornito una così vasta community di esperti che possono offrirci il necessario aiuto in momenti disperati.
Choudhury Saadmaan Mahmid,

1

Ho avuto anche questo problema. Ecco come viene risolto questo

  • Escludi bincartella dal progetto.
  • Chiudi studio visivo.
  • Pulizia del disco dell'unità C.
  • Riapri il progetto in Visual Studio.
  • E quindi ricostruire la soluzione.
  • Esegui progetto.

Questo processo funziona per me.



1

Sono stato in grado di risolvere il problema rimuovendo il file di destinazione che si lamenta (nel tuo esempio "Bin \ Debug \ test.Resources.xml") dalla cartella bin del sito Web di destinazione e lo ricostruisco.


1

1) chiudere la soluzione Visual Studio

2) vai al prompt dei comandi -> esegui come amministratore -> iisreset / stop

3) vai a c -> Windows -> Microsoft.Net -> Framework64 -> v4.030319 -> File temporanei Asp.NET -> Elimina tutti i file e le cartelle in questo percorso.

4) Tornare al prompt dei comandi -> iisreset / start

5) Ora apri Visual Studio -> Esegui come amministratore -> pulisci la soluzione e costruiscila (non ricostruire ... solo la build ha funzionato per me)


0

Non è necessario modificare l'attributo della cartella in non di sola lettura. Il motivo per cui viene visualizzato questo messaggio di errore è che il controllo del codice sorgente presuppone che i file vari vengano archiviati solo in un luogo diverso dalla cartella bin, poiché è riservato ai file creati automaticamente da .Net e non desidera aggiungerli al codice sorgente controllo.

Suggerisco invece di utilizzare Environment.CurrectDirectory(che presumo tu stia utilizzando attualmente), crei una cartella denominata "MyProjectName" nell'indirizzo% appdata% e quindi usi:

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


0

Quindi ho appena incontrato lo stesso problema, la mia causa, avevo la mia cartella di sviluppo condivisa in modo da poter usare un mac come host di compilazione per un'applicazione IOS usando Xamarin. Il progetto era in esecuzione su Mac che divenne proprietario della DLL quindi non potevo apportare modifiche a quella DLL da nessun'altra parte. La semplice interruzione dell'applicazione sul mac mi ha restituito la proprietà che ha consentito di nuovo l'accesso completo. Spero che questo faccia da allora.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.