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ó.


¿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.


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


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.


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


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.


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


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.



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

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.


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!


3

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


3

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


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.


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


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.


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.


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

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.


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.


2

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


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.


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í.


1

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


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.



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í.


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í)


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


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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.