2009-12-17 21 views
5

Tengo una solución en Visual Studio que se compone de 5 proyectos. Los proyectos se crean para ensamblados (.dll). Tengo la ruta de salida de cada proyecto establecida en \ my-web-server \ wwwroot \ bin, que funciona bien en un proyecto. En las propiedades para todos mis proyectos, tengo la ruta de salida establecida en el mismo directorio, pero cuando intento construir todos menos uno de los proyectos, obtengo el error:No se puede copiar el archivo al servidor en la compilación. Se deniega el acceso a la ruta

No se puede copiar el archivo "obj \ Release \ Index.dll "a" \ my-web-server \ wwwroot \ bin \ Index.dll ". Se deniega el acceso a la ruta '\ my-web-server \ wwwroot \ bin \ Index.dll'.

Supongo que podría ser un problema con los permisos, porque mi organización mantiene las cosas bloqueadas, pero no tengo control sobre la concesión de permisos. Cualquier ayuda en la dirección correcta es muy apreciada.

Respuesta

17

Debe haber sido algo tonto. Eliminé el archivo .dll de forma manual y luego reconstruí. Parece que todo está funcionando normalmente. Gracias.

+1

+1 Si la siguiente persona puede ejecutar una herramienta SysInternals ANTES DE BORRAR EL ARCHIVO para ver qué causa el acceso denegado (es decir, un bloqueo en el archivo) e informar la causa raíz que sería muy apreciada. –

+1

Ejecutando SysInternals procexp: devenv.exe sentado en el archivo. El proyecto de descarga no funcionó, pero después de cerrar la solución, pude eliminar System.Web.WebPages.Deployment.dll de la bandeja. Eh. – OzrenTkalcecKrznaric

+0

perfecto !! funciona bien después de eliminar todos los archivos en la carpeta bin y lo compila. –

0

Lo más probable es que un programa se esté ejecutando utilizando esa biblioteca.

Esto me pasa cuando ejecuto algo para depurar, y me olvido de cerrarlo (no adjunto al depurador IDE).

Y como parece un sitio web, es posible que se deba a que el sitio web está alojado en la carpeta de compilación de desarrollo y alguien está accediendo a él.

+0

No puedo pensar en otra cosa que podría estar accediendo al archivo. Incluso paré el sitio web en IIS, luego intenté construir mientras estaba parado. No vayas. –

0

Similar a lo que Aequitarum said, es más que probable un archivo bloqueado porque está en uso. Como tiene múltiples proyectos, es probable que tenga referencias entre ellos. Y dado que tiene todos los proyectos generando en la misma carpeta, es probable que todos los proyectos referenciados se copien más de una vez si tiene esos archivos configurados para implementarse en el proyecto secundario. (En una aplicación web de C#, puede ver las propiedades de la referencia y mirar la propiedad "Copiar local"). Y si tiene el proyecto MsBuild configurado para usar varios procesadores para la construcción, dos proyectos secundarios están tratando de copiar el archivo aproximadamente al mismo tiempo y uno se está equivocando.

Es una situación única, pero es posible.

2

acaba de tener el mismo problema, construyó un nuevo proyecto/solución, lo puso todo en funcionamiento y luego se agregó a TFS.

Lamentablemente, no limpié la compilación antes de agregarla y esto significaba que algunos archivos que no deberían haber estado bajo el control de código fuente eran y luego solo eran de lectura (no estaban desprotegidos). Eliminar manualmente los archivos antes de reconstruir solucionó el problema.

3

La solución para mí fue eliminar todo en carpetas bin y obj en cada proyecto. Simplemente ejecute este script de PowerShell como se describe en here.

3

Tuve el mismo problema. Una copia de Visual Studio (devenv.exe) seguía ejecutándose invisible en segundo plano manteniendo el dll particular bloqueado.

3

Borre todas las DLL de la carpeta bin y cree la solución.

0

Solución de trabajo

basta con ir a Administrador de tareas y Detalle de búsqueda (si es Win10) y de búsqueda con el nombre de la aplicación (para facilitar su búsqueda con tan sólo mirar a su ventanas identificación del usuario en cuanto a)

Y el botón derecho muestra las propiedades. solo da el permiso como acceso de administrador.

Todo está funcionando bien para mí. (Estuve luchando durante 1 semana y me mató más el tiempo)

0

Parece que el Servicio WSearch bloquea los archivos y no los libera. Inhabilité el servicio en WINDOWS 10 y pude reconstruir la solución.

Cuestiones relacionadas