No se puede copiar el archivo: se deniega el acceso a la ruta

238

Estoy usando Visual Studio 2005. Después de tomar el código del control de versiones primero, la aplicación c # .net se ejecuta correctamente. Pero, después de hacer algunas modificaciones, cuando construyo obtengo el siguiente error:

Error 383 No se puede copiar el archivo ".. \ root \ leaf \ Bin \ Debug \ test.Resources.xml" a "Bin \ Debug \ test.Resources.xml". Se deniega el acceso a la ruta 'Bin \ Debug \ test.Resources.xml'. li.rollmodel

¿Alguien sabe por qué está ocurriendo este problema?

Editar Puedo ver que toda mi carpeta de código fuente del proyecto es de solo lectura, y no puedo eliminar la propiedad de solo lectura.

Primero, ¿alguien puede decirme cómo eliminar la propiedad de solo lectura para esta carpeta? He intentado eliminarlo pero la propiedad de solo lectura persiste. Intenté desde el lado del control de versiones también y eso tampoco funcionó.

ricky
fuente
¿Está esto en un recurso compartido de red? ¿Tiene acceso administrativo en su máquina? Esta pregunta podría encajar mejor en serverfault o superusuario.
arunkumar
no ,, estoy usando mi propia máquina tengo acceso administrativo
ricky
Resolví ese problema copiando manualmente el archivo de una ubicación a la ubicación requerida, posiblemente el problema está relacionado con MSBUILD con un archivo de solo lectura
ricky

Respuestas:

277

Resolví este problema eliminando los archivos contenciosos de la carpeta bin y reconstruyendo el proyecto.

DiligenteKarma
fuente
50
publicación anterior, lo sé, pero tuve el mismo problema en este momento. Asegúrese de que VS también esté cerrado, ya que negará el acceso para eliminar la carpeta en algunos casos
Eon
1
Pequeña nota: no entendí, al principio, tengo que eliminar estos archivos en la carpeta de salida del proyecto principal y no en la carpeta de salida de la dll. Entonces, advertencia aquí :)
Piero Alberto
66
En mi caso, incluso cerrar VS no fue suficiente para liberar la carpeta y permitirme eliminarla: ProcessExplorer mostró que "VBCSCompiler.exe" todavía la estaba usando. En este caso, cerrar y cerrar sesión en Windows (o simplemente eliminar el proceso) funcionó, permitiéndome reconstruir la solución y hacer que todo vuelva a funcionar.
S. Jensen
2
en mi caso, la razón por la cual la carpeta y la solución se convirtieron en ReadOnly y posteriormente VS tuvo problemas para construirla, fue porque algunos archivos no se sincronizaron con GoogleDrive y de alguna manera se bloquearon con ese proceso. Entonces, para que pueda reconstruir correctamente, tuve que cerrar GoogleDrive y luego funcionó bien.
konrad
1
Encontré que Bitdefender Antivirus Free era el culpable.
Warwick
123

Solo asegúrese de que la carpeta NO sea de solo lectura y reconstruya la solución

Wahid Bitar
fuente
12
Estoy tratando de eliminar la casilla de verificación 'Solo lectura' llena de color verde. Cuando hago clic en 'Aplicar' y luego en 'Aceptar', y luego verifico las propiedades de esa carpeta nuevamente, puedo ver nuevamente en el estado anterior (nuevamente con la casilla de verificación 'Solo lectura' llena de color verde). ¿Alguien tiene solución en esto?
Vikram
Además, asegúrese de que el archivo no esté bloqueado. En mi caso, el archivo estaba en un recurso compartido y alguien más lo tenía abierto.
Dan Bechard el
Cierre Visual Studio antes de eliminar el atributo de solo lectura. Debido a que el archivo en cuestión puede estar en uso (bloqueado)
Gautam Jain
44
Creó una extensión de Visual Studio para borrar los atributos ReadOnly y Hidden de dlls que bloquean la compilación. UnBlockDllExtension: marketplace.visualstudio.com/…
vrnithinkumar
69

Resolví este problema: cierre Visual Studio, ábralo nuevamente y cargue la solución, reconstruya su solución. Mi problema ocurrió usando TFS y VIsual Studio 2010.

jordenysp
fuente
22
Agregue el mismo problema en VS2013. Caso clásico de The IT Crowd. "Hola, esto es TI, ¿has intentado apagarlo y volver a encenderlo?".
Maxime Rouiller
1
Mismo escenario: TFS y VS 2010. El mismo problema. La misma solucion. +1
ajeh
2
Esto también sucedió en VS2015: p
Yoo Matsuo
44
Y lo mismo en VS2017
arame3333
1
Ya me volví loco tratando de arreglar esto, resultó el viejo método si algo no funciona, reiniciarlo, funcionó bien
Mykhailo Seniutovych
50

Proceso de matanza VBCSCompiler.exe y reconstruye.

MuriloKunze
fuente
3
Esto es lo que me resolvió. Gracias amable desconocido: D
Morsus
Sí, esto es todo.
kal kokah
Muchas gracias, amable desconocido! : D
Agent007
a veces funcionó para mí, no siempre, debo decir que resolverá una parte de este problema, también hay algo más que está causando este problema
Amit Bisht
Pruebe esto también puede ayudarlo a stackoverflow.com/a/12740768/2445111
Amit Bisht
23

Entré en este problema también.

Primero vaya y verifique si ha asignado su carpeta bin y obj al programa de control de código fuente.

Esto puede convertir sus archivos de carpetas binarias en archivos de solo lectura, lo que hace imposible que Visual Studio los sobrescriba cuando compila el código.

Vaya y elimine la asignación de estas carpetas, verifique los cambios e intente nuevamente.

Mi problema ocurrió usando TFS (Team Foundation Server) y Visual Studio 2010.

Espero que esto ayude a alguien.

Heitor Corrêa
fuente
1
Solo quería agregar que la respuesta de Heitorolecarte solucionó mi problema y esto puede ocurrir con Visual Studio 2012 y TFS2010.
Rodney
20

Ejecute su Visual Studio como administrador

Alejandro Haro
fuente
1
Nota: aquí hay una manera corta y simple de ejecutar siempre como administrador por defecto stackoverflow.com/questions/12257110/…
wmebane
Esta respuesta me dijo lo suficiente como para agregar un permiso de escritura a "Usuarios" en mi carpeta de salida, y eso resolvió mi problema al instante (que era que no podía publicar ni la primera vez).
X Goodrich
9

Yo uso Visual Studio 2013. Enfrenté este problema 2 veces:

  1. En la primera ocasión, estaba ejecutando Visual Studio sin derechos de administrador. Entonces, cerré VS y lo comencé usando la opción ' Ejecutar como administrador '. Esto resolvió mi problema.

  2. En la segunda ocasión, reinicié VS muchas veces, siempre asegurándome de que lo estaba ejecutando como administrador. Además, reconstruí la solución muchas veces. Pero, a pesar de eso, recibí un error. Después de eso, eliminé el archivo en cuestión de la ubicación de destino (el archivo ya estaba presente puede ser de la compilación anterior en la ubicación donde intenta copiar) y reconstruí la solución . Después de eso, el error desapareció y todo funcionó sin problemas.

Vikram
fuente
8

En mi caso, fue el antivirus el que bloqueó el archivo.

Claudiu Constantin
fuente
BitDefender 6.2 aquí
JOG
7

Esto ha despertado su cabeza nuevamente en Visual Studio 2017, en este caso la causa es el proceso de Application Insights ServiceHub.DataWarehouseHost.exe.

Hay una solución alternativa discutida en el hilo de advertencia MSB3026: No se pudo copiar "obj \ Debug \ netcoreapp1.1 \ src.pdb" a "bin \ Debug \ netcoreapp1.1 \ src.pdb" , que es agregar una precompilación evento al proyecto para matar el proceso cada vez que se construye el proyecto. Citando desde ese enlace:

  • Haga clic derecho en las propiedades del proyecto
  • Elige propiedades
  • Construir eventos
  • Línea de comando de evento previo a la compilación
taskkill /IM ServiceHub.DataWarehouseHost.exe /F 2>nul 1>nul
Exit 0
  • Guardar y construir
tomRedox
fuente
6

¿Puede alguien saber por qué viene este problema?

Mirando su respuesta de que resolvió su problema copiando manualmente, diría que el código en el que estaba trabajando fue creado por otro usuario (con privilegios de administrador también), por lo que se lo bloqueó. Al realizar copia -? pegue, hizo su PROPIA copia de la fuente con todo el acceso que necesitaba. Lo único que debe notar es que, en este caso, si este otro desarrollador necesita trabajar en su copia, él / ella saltará al mismo problema que tenía antes.

Tigran
fuente
6

Primero ve a la ubicación del archivo. Luego haga clic derecho en la carpeta del archivo -> Propiedades -> Opción de solo lectura sin marcar y aplique a los archivos y sus subcarpetas. Resolvió mi problema. ¡Feliz codificación!

Vinayak Savale
fuente
3

Volví a agregar todas mis dependencias / referencias ajenas a .NET y funcionó.

Shawn
fuente
3

Resolví este problema yo mismo. El problema era que tenía la solución abierta en otro lugar. Después de cerrarlo funciona

Henley Chiu
fuente
Yo hice esto también. Siempre verifique primero las cosas fáciles obvias, mi destino estaba en una unidad de red, ya que estaba depurando en otra máquina.
Simon Unsworth
3

Tuve el mismo problema, pero reiniciar Visual Studio cada vez no era una opción para mí , ya que el problema ocurre a veces con mucha frecuencia.

Lo manejé instalando Unlocker ( intenta instalar cualquier barra de herramientas en la instalación, así que no olvides desmarcar esto ), esta aplicación me da acceso rápido para renombrar / eliminar un archivo ".xml" bloqueado . Sé que esto también es una solución alternativa, pero para mí fue la solución más rápida para resolver este problema.

David Leitner
fuente
Gracias por esto. Tuve este problema durante el año pasado y pensé que era porque cambiaría entre Administrador y no, pero ahora sé que es un estúpido proceso crítico relacionado con Panda Antivirus (PSANHost.exe, no presente en el Administrador de tareas) que bloqueó el archivos
yeejuto
3

Publicación anterior, pero este zombie está llegando a VS 2017 (no he profundizado en por qué son solo "algunos" proyectos). En este caso, no se trata de permisos de usuario , sino que el proceso IIS Express sigue utilizando los archivos.

Verá el ícono en su bandeja de tareas Icono de IIS Express

  1. Botón derecho del ratón
  2. Salida
  3. Debería poder hacerlo rebuildsin este molesto mensaje de "permiso denegado".

Esta es también la razón por la que "reiniciar Visual Studio" "solucionará" el problema. Al hacerlo, se detiene IIS Express.

Hth ...

EdSF
fuente
2

Creé este problema cuando agregué un nuevo proyecto de instalación a la solución y luego agregué archivos directamente desde la carpeta / bin / release del proyecto de aplicación principal a la carpeta de archivos de la aplicación del proyecto de instalación. El control de origen del proyecto de instalación me impedía constantemente completar una compilación del proyecto de aplicación principal.

Solución: cree una carpeta de volcado separada fuera de cualquiera de los proyectos que contendrá todos los archivos que se incluirán en la instalación, y agréguelos desde allí. Es un dolor porque ahora tengo que recordar copiar todos los archivos para cada nuevo paquete de instalación. Podría ver si puedo hacer algo con las acciones posteriores a la compilación, nuestra compilación automatizada para facilitar el proceso.

portia
fuente
2

Si copia cualquier archivo a una solución, asegúrese de que los archivos no estén en modo de solo lectura. Haga clic derecho en el archivo y desmarque la opción de atributo resuelto mi problema.

InitialV
fuente
2

Tuve el mismo error pero estoy usando el control de versiones de Perforce . Así es como lo arreglé.

  1. Cerrado Perforce P4V cliente
  2. Reinicié Visual Studio 2010 (podría no ser necesario)
  3. Reconstruyó el proyecto, que tuvo éxito
  4. Me sentí excepcionalmente feliz y asqueado al mismo tiempo
Madmartigan
fuente
1
Tengo la misma configuración, pero no pude llegar a los pasos 3 y 4 :(
user3260977
2

También tuve el mismo problema. Recibí mensajes de error relacionados con que no se pueden copiar ya que se denegó el acceso a la ruta. En mi caso, todos mis archivos dll y xml, etc. están ubicados en la carpeta D: \ TFS \ Example \ Bin \ Debug.

Hice clic derecho en la carpeta Bin e hice clic en Propiedades y vi que la casilla de verificación Solo lectura está marcada en Atributos.

Desmarqué la casilla de verificación Solo lectura, hice clic en Aplicar y hice clic en Aceptar en la nueva ventana emergente que se muestra.

Regresé a Visual Studio y construí mi solución que me daba mensajes de error.

Voilaa .. Esta vez se construye con éxito sin errores.

No sé si esto es perfecto, pero hice esto para resolver mi problema.

Ziggler
fuente
2

Verifique el Administrador de tareas y asegúrese de no tener un proceso devenv.exe colgando. Elimina el proceso desbocado e inténtalo de nuevo.

Hazen Hills Software
fuente
2

Vaya a la ruta del archivo y luego desmarque la casilla de verificación de solo lectura de este archivo.

Ramy Othman
fuente
1

Sé que es un hilo antiguo, pero para aquellos que buscan respuestas, como yo hace unos minutos, les recomiendo intentar reiniciar su computadora primero. Eso solo me arregló. Antes ni siquiera podía copiar manualmente a la carpeta.

Joao Leme
fuente
1
también me ayudó Pandilla 2020
Vitor Ceolin
1

Simplemente haga clic derecho en su proyecto MVC y haga clic en la opción de limpieza. Tuve un problema similar y la limpieza del proyecto antes de la reconstrucción lo resolvió por mí.

Ehsan
fuente
1

También tuve el mismo problema. Lo arreglé desmarcando las propiedades de solo lectura de la carpeta raíz.

Rajan Kumar Kharel
fuente
A veces la solución es tan simple y obvia como esta. En lugar de seguir golpeándote la cabeza y trabajar en procedimientos complejos e interminables, solo busca este tipo de posibilidades simples y tu vida será mucho más fácil. Agradezco a StackOverflow por brindarnos una comunidad tan amplia de expertos que pueden ofrecernos la ayuda necesaria en momentos desesperados.
Choudhury Saadmaan Mahmid
1

También tuve este problema. Así es como se resuelve esto

  • Excluir bincarpeta del proyecto.
  • Cerrar estudio visual.
  • Limpieza de disco de la unidad C.
  • Reabrir proyecto en estudio visual.
  • Y luego reconstruir la solución.
  • Ejecutar proyecto.

Este proceso me funciona.

Manoj
fuente
1

Pude resolver el problema eliminando el archivo de destino que se queja (en su ejemplo "Bin \ Debug \ test.Resources.xml") de la carpeta bin del sitio web de destino y reconstruirlo. Eso lo arregló para mí.

Rama Krshna Ila
fuente
1

1) cierre la solución visual studio

2) navegue al símbolo del sistema -> ejecutar como administrador -> iisreset / stop

3) navegue a c -> Windows -> Microsoft.Net -> Framework64 -> v4.030319 -> Archivos temporales de Asp.NET -> Elimine todos los archivos y carpetas en esta ruta.

4) Vuelva a la línea de comandos -> iisreset / start

5) Ahora abra el estudio visual -> ejecute como administrador -> limpie la solución y compílela (no la reconstruya ... solo la compilación funcionó para mí)

Krishna
fuente
0

Se supone que no debe cambiar el atributo de carpeta a no solo lectura. La razón por la que está viendo este mensaje de error es que el control de origen asume que solo almacena sus archivos misceláneos en otro lugar que no sea la carpeta bin, ya que está reservado para archivos creados automáticamente por .Net y no quiere agregarlos a la fuente controlar.

Sugiero que en lugar de usar Environment.CurrectDirectory(que supongo que está usando actualmente), cree una carpeta llamada "MyProjectName" en la dirección% appdata% y luego use:

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

Bizhan
fuente
0

Así que me encontré con el mismo problema, la causa mía, compartí mi carpeta de desarrollo para poder usar un mac como host de compilación para una aplicación IOS que usa Xamarin. El proyecto se estaba ejecutando en Mac, que tomó posesión de la DLL, por lo tanto, no pude hacer cambios a esa DLL desde ningún otro lugar. Simplemente detener la aplicación en el Mac me devolvió la propiedad, lo que permitió el acceso completo nuevamente. Espero que esto haga desde entonces.

Jon Willis
fuente