visual-studio - validate - visual studio code español
No se puede copiar el archivo reference.dll a bin/reference.dll. El proceso no puede acceder al archivo reference.dll porque está siendo utilizado por otro proceso (30)
¡He luchado este tema POR AÑOS!
¿Has intentado agregar esto a tu evento PREBUILD?
if exist "$(TargetPath).locked" del "$(TargetPath).locked"
if exist "$(TargetPath)" if not exist "$(TargetPath).locked" move "$(TargetPath)" "$(TargetPath).locked"
Consulte esto para obtener más información: http://nayyeri.net/file-lock-issue-in-visual-studio-when-building-a-project
Aquí hay otro hilo, con más cosas para probar ...
Para una de mis aplicaciones ASP.NET 3.5, cada vez que intento crear la aplicación web, arroja los siguientes errores de compilación en Visual Studio 2008:
Error 165 No se puede copiar el archivo "C: / InOne / Common / DexProcessor / bin / Debug / DexProcessor.dll" a "bin / DexProcessor.dll". El proceso no puede acceder al archivo ''bin / DexProcessor.dll'' porque está siendo utilizado por otro proceso. Error 166 de InVision2 No se puede copiar el archivo "C: / InOne / Common / DexParser / bin / Debug / InOne.DexParser.dll" a "bin / InOne.DexParser.dll". El proceso no puede acceder al archivo ''bin / InOne.DexParser.dll'' porque lo está utilizando otro proceso. InVision2 Error 167 No se puede copiar el archivo "C: / InOne / Common / AlertProcessor / bin / Debug / InOne.Invision.AlertProcessing.dll" a "bin / InOne.Invision.AlertProcessing.dll". El proceso no puede acceder al archivo ''bin / InOne.Invision.AlertProcessing.dll'' porque está siendo utilizado por otro proceso. InVision2 Error 168 No se puede copiar el archivo "C: / InOne / Common / InVision.BusinessLogic / bin / Debug / InVision.BusinessLogic.dll" a "bin / InVision.BusinessLogic.dll". El proceso no puede acceder al archivo ''bin / InVision.BusinessLogic.dll'' porque lo está utilizando otro proceso. Error 169 de InVision2 No se puede copiar el archivo "C: / InOne / Common / InVision.Common / bin / Debug / InVision.Common.dll" a "bin / InVision.Common.dll". El proceso no puede acceder al archivo ''bin / InVision.Common.dll'' porque lo está utilizando otro proceso. InVision2 Error 170 No se puede copiar el archivo "C: / InOne / Data / bin / Debug / InVision.Data.dll" a "bin / InVision.Data.dll". El proceso no puede acceder al archivo ''bin / InVision.Data.dll'' porque está siendo utilizado por otro proceso. Error 171 de InVision2 No se puede copiar el archivo "C: / InOne / Common / InVision.DataAccessLayer / bin / Debug / InVision.DataAccessLayer.dll" a "bin / InVision.DataAccessLayer.dll". El proceso no puede acceder al archivo ''bin / InVision.DataAccessLayer.dll'' porque está siendo utilizado por otro proceso. Error 172 de InVision2 No se puede copiar el archivo "C: / InOne / Common / InVision.DataAccessLayer.SqlClient / bin / Debug / InVision.DataAccessLayer.SqlClient.dll" a "bin / InVision.DataAccessLayer.SqlClient.dll". El proceso no puede acceder al archivo ''bin / InVision.DataAccessLayer.SqlClient.dll'' porque lo está utilizando otro proceso. InVision2
Esto comenzó a suceder hace una semana y es muy molesto ... Tengo que ir a la carpeta bin de la aplicación web y eliminar los archivos pdb y luego me permitirá eliminar la DLL la mayor parte del tiempo. De vez en cuando no me deja, así que tengo que cerrar Visual Studio y luego me permite eliminarlos. Revisé y es Visual Studio (devenv) que está bloqueando el dll. Reiniciar la máquina no ayuda.
Esto realmente está reduciendo mi productividad, ¿hay algo que pueda hacer para resolver esto?
Como se mencionó, Visual Studio 2008 (devenv.exe) es el proceso que bloquea las DLL.
Me di cuenta de algo ... Cuando se compila con éxito, está copiando todos los archivos DLL en la carpeta bin, luego se eliminan todos, y luego se copia un nuevo conjunto en el contenedor. Cuando no es exitoso, se copia el primer conjunto de archivos DLL y luego falla. Entonces parece que está usando la carpeta bin para 2 cosas cuando debería ser solo para 1. ¿Esto ayuda?
Compruebe si el dll del usuario y la aplicación que hace referencia al dll apuntan al mismo .NET framework. Tuve un caso donde los marcos eran diferentes que causaron este problema.
De forma similar a la respuesta de Benoit, pero no requiere ninguna herramienta de instalación, puede usar el comando tasklist (administrador de tareas) en la línea de comandos con el modificador ''/ m'' para obtener una lista de procesos usando el dll:
tasklist / m mylocked.dll
Vi algunas publicaciones que indican que tienes que hacerlo desde el directorio de la dll ofensiva, pero no he encontrado que sea el caso.
Desafortunadamente, no tuve suerte con los eventos previos a la construcción. Lo que funcionó, en la típica manera de IT Crowd, fue abandonar Visual Studio y volver a abrirlo.
El archivo no se puede eliminar, afortunadamente se puede renombrar y mover. Así que creé el lote de preconstrucción (usando la fecha y la hora como una cadena aleatoria, puede haber formas más sencillas):
For /f "Tokens=2,3,4 Delims=/. " %%i In ("%Date%") Do @(
Set Month=%%i& Set Day=%%j& Set Year=%%k
)
set ActDate=%Year%-%Month%-%Day%
For /f "Tokens=1,2,3 Delims=/.:, " %%i In ("%Time%") Do @(
Set Hour=0%%i& Set Min=%%j& Set Sec=%%k
)
set ActTime=%Hour:~-2,2%-%Min%-%Sec%
move c:/MyProject/bin/Debug/myproject.exe c:/garbage/%ActDate%_%ActTime%_myproject.exe
El problema terminó siendo que en el web.config alguien había agregado:
hostingEnvironment shadowCopyBinAssemblies="false"
Después de comentar esto, todo comenzó a funcionar bien. ¡¡Qué pesadilla!!
Elimine los archivos binarios de la carpeta bin / Debug y vuelva a compilarlos. Esto funciona para mi !!!
Estaba usando Visual Studio 2012 cuando esto comenzó a suceder en una solución de 7 años (por segunda o tercera vez: he estado en esta pregunta antes).
Probé varios vudú. Limpié la solución. No funcionó Reinicié Visual Studio. No funcionó Estaba seguro de que el último funcionaría, porque ese es el vudú que funcionó la última vez.
Finalmente, recordé que una actualización de seguridad se había instalado anoche y se configuró cuando comencé mi máquina esta mañana - (¿Conectado o no? No tengo idea) - Entonces, reinicié Windows, y voilá, todo volvió a funcionar como magia.
Gracias MS por más mind mincing.
Este problema comúnmente ocurre cuando cambia su proyecto de un directorio a otro. Para el error de copia de Shadow es posible que haya agregado esta línea en su web.config. Para solucionar este problema, siga los siguientes pasos
En su archivo web.config si hay algo así como
<hostingEnvironment shadowCopyBinAssemblies="false" />
cambiar eso en
<hostingEnvironment shadowCopyBinAssemblies="true" />
o eliminarlo. Entonces funcionará bien
Esto me pasa a veces cuando uso Visual Nunit para pruebas unitarias.
Parece que el proceso ''VisualNunitRunner.exe'' bloquea los archivos .dll en el directorio de destino.
Unlocker para encontrar el proceso, matarlo o desbloquear los archivos.
Finalmente, cómo lo solucioné. Occures porque el primer debug exe aún se está ejecutando. Por lo tanto, vaya a Administrador de tareas -> Pestaña Proceso -> [su nombre de proyecto exe] termine el proceso exe
Hola, estoy enfrentando el mismo problema por un tiempo. Es muy molesto.
Tengo una solución más fácil pero no tan eficiente para el problema. Limpiar el proyecto o la solución resuelve el problema.
Hubo un error específico en Visual Studio 2008 que se corrigió en SP1, que puede ser su problema. Ocurre cuando hace referencia a un archivo JavaScript incrustado y causa el problema que está viendo. Mira here para más detalles.
La eliminación de las siguientes líneas de mi app.config me solucionó esto: estoy usando VS2010.
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="nunit.framework" publicKeyToken="96D09A1EB7F44A77" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-2.5.7.10213" newVersion="2.5.7.10213"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
Lo que funcionó para mí es el siguiente evento de preconstrucción:
if exist "$(TargetPath).locked.bak" del "$(TargetPath).locked.bak"
if exist "$(TargetPath).bak" del "$(TargetPath).bak"
if exist "$(TargetPath).locked" ren "$(TargetPath).locked" "$(TargetFileName).locked.bak"
if exist "$(TargetPath)" ren "$(TargetPath)" "$(TargetFileName).bak"
Lo que noté en mi caso es que los 2 archivos están siendo creados y no pueden ser eliminados. Sin embargo, puede cambiarles el nombre (y todavía están en uso si intenta eliminarlos). En una próxima compilación, los archivos renombrados ya no se usan (bloqueo eliminado) y se pueden eliminar, que es lo que hace la secuencia de comandos anterior, después de lo cual puede cambiar el nombre de los nuevos archivos bloqueados para que no haya problemas al generar la secuencia construir salida
Los otros eventos previos a la construcción publicados aquí y en otros lugares no me ayudaron mucho (trabajaron solo para una versión extra o solo unos pocos antes de que el problema volviera a surgir). Así que ahora estoy usando el publicado anteriormente para mis propósitos de depuración.
Los bloqueos de archivos son solo parte de trabajar con Visual Studio. No hay muchas maneras de evitar este problema.
Me sucedió justo ahora. Tuvo que matar todos los procesos devenv.exe (hubo 3 de ellos después de cerrar la ventana de VS 2010).
Puede descargar el excelente programa SysInternals Handle . Esto le dirá qué procesos tienen un bloqueo en los archivos en cuestión.
Si se trata de un programa externo (por ejemplo, escáner / indexador de virus), esto debería ayudar. Si solo informa de que Visual Studio (devenv.exe) es el culpable, ¡será de menor ayuda!
Si tiene Visual Nunit, debe estar bloqueando el archivo dll.
- Cerrar VS
- Vaya al administrador de taks, elimine el proceso de Visual Nunit
- Ahora abre VS y crea el proyecto
Simplemente vaya a / Debug / bin y elimine todos los archivos .dll.
Funcionando bien para mi
Solo quería decir que este problema comenzó conmigo hoy. (VS 2010, C #) He estado trabajando en este programa durante un mes sin este problema, ahora hoy comenzó. Comienzo VS, cambio de código, compilo, pruebo y salgo del programa. Realice otro cambio, compile y BOOM Imposible copiar el archivo "obj / x86 / Debug / progname.exe" a "bin / Debug / progname.exe" porque si está siendo utilizado por otro proceso.
ProcExp muestra solo Visual Studio (en realidad devenv.exe) utilizando este archivo. Solo hay una instancia de VS ejecutándose. Hay dos listas en mi debug / progname.exe, una es una DLL Tipo, la otra es un manejador Tipo.
Usar devenv / ResetSettings no resolvió nada, pero desperdicié 10 minutos poniendo todo de nuevo en mi punto de vista deseado.
El uso de los eventos PREBUILD para cambiar el nombre del truco mencionado anteriormente resuelve el problema para un par de cambios, pero en el siguiente cambio el archivo "exe.locked" está bloqueado y no se puede eliminar. Entonces el cambio de nombre falla.
El nombre del archivo debug / progname.exe permanece bloqueado incluso después de cerrar el proyecto.
Al cerrar VS, elimino manualmente los archivos en la carpeta de depuración, abriendo VS y mi solución, luego Build-> Clean Solution parece funcionar para mí, al menos está funcionando ahora después de que hice todas esas cosas.
Espero que esto ayude -rwg
Solución fácil para Windows 7: Inicie el servicio "Application Experience". Busque "Servicios" en "Panel de control".
-Martín
Supongo que ya sabes que es VS2008 el que está bloqueando los archivos. Puede intentar ejecutar MSBuild desde la línea de comandos y ver si los problemas desaparecen. Desafortunadamente Visual Studio puede mantener los archivos bloqueados cuando no debería, en algunos escenarios difíciles de predecir.
También me enfrento a este problema. Primero intento eliminar .dll contencioso pero muestra Acceso denegado, luego cierro mi VS y después de abrir, funciona bien.
Tuve este problema en un proyecto web con System.Web.Extensions.dll de la carpeta Microsoft Reference Assemblies. Al establecer "Copiar local" en "falso" en las propiedades de referencia, se corrigió.
Tuve un problema similar y pude resolverlo cambiando el ''AssemblyInfo.cs''
La creación de Visual Studio falla: no se puede copiar el archivo exe de obj / debug a bin / debug
Tuve una solución problema simillar para mí era mirar el archivo * .csproj y debajo encontré el archivo faltante y debajo fue correcto, así que simplemente eliminé las líneas y funcionó de inmediato
Use ProcessExplorer para descubrir qué proceso tiene el archivo abierto y vaya desde allí.
Si un proceso está actualmente utilizando esos archivos DLL, no puede eliminarlos y volver a escribirlos. Tendrá que matar o detener el proceso usando esas DLL mientras compila.
abra su proyecto en el explorador haga clic en la propiedad de la carpeta bin y desmarque la propiedad de solo lectura que esta funciona en mi proyecto de formularios xamarin
también puede eliminar carpetas bin y obj en todos los proyectos en solución y luego reconstruir la solución.