Visual Studio "No se pudo copiar" during durante la compilación


Sigo recibiendo este error durante la compilación de mi proyecto VS2012 C#

Error   41  Could not copy "obj\Debug\WeinGartner.WeinCad.exe" to
 "bin\Debug\WeinGartner.WeinCad.exe". 
 Exceeded retry count of 10. Failed.    


Error   42  Unable to copy file "obj\Debug\WeinGartner.WeinCad.exe" to
"bin\Debug\WeinGartner.WeinCad.exe". The process cannot access the file
'bin\Debug\WeinGartner.WeinCad.exe' because it is being used by another 
process.    

Ahora me he dado cuenta de que matar el proceso

Weingartner.WeinCad.vhost.exe

Funciona (a veces ) pero esto me está poniendo de los nervios. ¿Alguna forma de evitar que esto suceda?

Mi configuración del depurador es

introduzca la descripción de la imagen aquíintroduzca la descripción de la imagen aquí

Author: Ogglas, 2013-08-07

30 answers

He encontrado mensajes de error similares en Visual Studio 2013.

En su mayoría, he encontrado que esta situación ha ocurrido cuando un proceso de depuración se detuvo debido a una excepción.

Cuando clean + build no ha resuelto este problema para mí, he tenido éxito haciendo lo siguiente:

  • Cerrando Visual Studio
  • Eliminando las carpetas bin y obj, y
  • Reabriendo Visual Studio.

Este "error" ha existido desde Visual Studio 2003.

Finalmente, también he encontrado que a menudo puedo superar este problema simplemente cambiando el nombre del archivo ejecutable y luego eliminarlo.

 274
Author: Gerard,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-02-22 13:12:01

En Visual Studio Premium 2013 (Actualización 3), resolví esto con un pre-build one-liner:

(if exist "$(TargetDir)*old.pdb" del "$(TargetDir)*old.pdb") & (if exist "$(TargetDir)*.pdb" ren "$(TargetDir)*.pdb" *.old.pdb)

Esto elimina con gracia cualquier archivo PDB antiguo (si puede), luego cambia el nombre de cualquier cosa que quede con una extensión .old.pdb. Un buen efecto secundario es que si el antiguo PDB todavía está bloqueado, solo agrega otro .pieza vieja al nombre del archivo, y todos se limpian la próxima vez que reinicies Visual Studio y hagas una compilación.

Por ejemplo, la sesión de compilación/depuración 1 deja bloqueado MyProject.pdb.
El la próxima vez que construyas:
MyProject.pdb --> MyProject.old.pdb

Entonces, construir/sesión de depuración 2 se inicia, y tanto MyProject.pdb y MyProject.old.pdb todavía están bloqueados:
MyProject.old.pdb --> MyProject.old.old.pdb
MyProject.pdb --> MyProject.old.pdb

Finalmente, reiniciar Visual Studio y hacer una nueva compilación eliminará ambos y continuará el proceso como de costumbre.

 100
Author: Geoff,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-08-11 20:22:57

Es porque ha cerrado su aplicación, pero todavía se está ejecutando en segundo plano.

Solución temporal:

  • Ir al Administrador de Tareas (Ctrl + Alt + Esc).
  • Vaya a la pestaña Procesos y busque "YourProjectName.exe".
  • Marque "Mostrar procesos de todos los usuarios" si no puede encontrar su proceso.
  • Fin Procesarlo.

Solución permanente: tiene que cerrar su aplicación a través de la codificación. Aquí está el codificar...

System.Windows.Forms.Application.Exit();

Tienes que poner este código en el evento de cierre del formulario en toda forma. Ejemplo:

private void frm_menu_FormClosing(object sender, FormClosingEventArgs e)
{
    System.Windows.Forms.Application.Exit();
}
 49
Author: Rushi Daxini,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-05-24 16:02:17

El.vhost.exe es un proceso depurador, por lo que parece que el proceso que se está depurando no se ha cerrado correctamente. Lo más probable es que tenga un error que lo mantiene vivo y no está deteniendo el proceso de depuración correctamente: hay opciones para separarse del proceso cuando hace clic en 'detener depuración' en lugar de matar al depurador, por lo que tal vez tenga ese conjunto.

Pero ese es el problema - el archivo que está tratando de copiar está bloqueado (es decir, todavía se utiliza) por el sistema operativo por lo que su prevención de la copia. Asegúrese de que el archivo es libre y usted será capaz de copiar.

 25
Author: gbjbaanb,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-08-07 12:07:48

Lo he resuelto matando a IISExpress en el administrador de tareas

 20
Author: pat capozzi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-01-15 18:50:04

Debe desactivar su antivirus (especailly si es un Avast) e intentarlo de nuevo. Me ayudó. El problema es que el depurador/constructor crea el .archivo exe que es identificado como una amenaza por Avast y por lo tanto eliminado justo antes de que pudiera ser ejecutado por VS.

 20
Author: Pitrs,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-06-17 14:38:15

Pude solucionar este problema (VS 2010) a través del suministro de una acción previa a la compilación;

if exist "$(TargetPath).locked" del "$(TargetPath).locked"

if exist "$(TargetPath)" if not exist "$(TargetPath).locked" move "$(TargetPath)" "$(TargetPath).locked"
 15
Author: Nair,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-07-24 14:01:29

Cita:

Una solución es poner esto en la propiedad de línea de comandos Pre-build event de >project (En la pestaña build Events):

Fragmento de código

if exist "$(TargetPath).locked" del "$(TargetPath).locked"

if exist "$(TargetPath)" if not exist "$(TargetPath).locked" move "$(TargetPath)" "$(TargetPath).locked"
 11
Author: Zheng Qiang,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-12-08 17:14:58

Matando el proceso w3wp.exe (IIS) a menudo resolverá esto.
Generalmente, puede conocer el proceso que tiene el bloqueo en el archivo navegando a la carpeta bin e intentando eliminarlo. El mensaje de error que aparecerá, en caso de que otro proceso lo esté usando, contendrá el nombre del proceso que necesita ser asesinado.

 6
Author: Ogglas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-10-20 17:10:55

Excepción

En algunos casos en Visual Studio cuando (Build / / Rebuild) encima de ejecutando IISExpress te enfrentaste a esta excepción:

No se puede copiar el archivo "obj\Debug\YourProjectName.dll " a bin\YourProjectName.DLL". el proceso no puede acceder a el archivo 'bin\YourProjectName.dll' porque está siendo utilizado por otro proceso

Solución

  1. Haga clic derecho en el proyecto web que necesita construir.
  2. Haga clic en propiedades.
  3. Seleccione la pestaña Build Events en el lado izquierdo.
  4. En la línea de comandos de eventos previos a la compilación, pegue estas 2 líneas:
tasklist /fi "imagename eq iisexpress.exe" |find ":" > nul
if errorlevel 1 taskkill /f /im "iisexpress.exe"

Usted es bueno 2 GO!

 5
Author: iTachi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-04-09 17:47:27

Me enfrenté al mismo problema en VS 2012 Versión 11.0.60610.01 Actualización 3 en Windows 8

No había ventanas de diseño abiertas y el proyecto era una simple aplicación de consola.

La eliminación del proceso vshost que accede al archivo no funciona la mayor parte del tiempo ya que el proceso no está accediendo al archivo.

La solución más simple que funciona y toma la menor cantidad de tiempo es eliminar el proyecto de la solución, construir otro proyecto en la solución y luego agregar la espalda original.

Es un irritante y una pérdida de tiempo, pero es la menos costosa de todas las otras opciones que conozco.

Espero que esto ayude...

 4
Author: Ashwin J,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-09-26 00:02:16

Creo que lo resolví quitando la marca de verificación a Break all processes when one process breaks en Opciones de depuración (primera captura de pantalla de op->segunda opción).
Ha sido la construcción/ejecución por un tiempo desde que he desmarcado él.
Estoy usando MySQL NET Connector y DevExpress controls en mi proyecto. Puede ser que uno de ellos no estuviera deshaciendo conexiones, ataduras, etc. bueno, debido a que esta bandera está siendo activada.

EDITADO: definitivamente funciona! No más 'No se puede copiar el archivo' y no más errores de diseñador de formularios.

 4
Author: Ivan Ferrer Villa,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-06-23 16:28:13

Parece que al cambiar el nombre del ensamblador de un proyecto se soluciona el problema.

Así que en lugar de esto

introduzca la descripción de la imagen aquí

Lo cambio a esto

introduzca la descripción de la imagen aquí

Observe que acabo de cambiarlo de Increment and Recall a Increment_Recall, acabo de eliminar los espacios. Ahora está funcionando bien para mí.

 4
Author: Cary Bondoc,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-10-19 05:06:31

Agregue el evento pre-build de su proyecto maestro taskkill /f /fi "pid gt 0" /im "Su proceso.vshost.exe "

 4
Author: sofsntp,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-11-12 16:17:13

Mi contribución de 10 centavos.

Todavía tengo este problema de vez en cuando en VS 2015 Actualización 2.

Descubrí que cambiar el destino de compilación resuelve el problema.

Prueba esto: si está en DEBUG cambie a RELEASE y build, entonces vuelva a DEBUG. El problema se ha ido.

Stefano

 3
Author: Stefano.net,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-03-01 07:04:05

No puedo dar una solución para evitar que esto suceda, pero al menos puede CAMBIAR el nombre del archivo bloqueado (explorador de Windows o ventana de comandos clásica) y luego compilar/construir. No es necesario reiniciar o reiniciar VS201x. Con un poco de experiencia, puede agregar un script previo a la compilación para eliminar archivos antiguos o renombrar luego fuera del camino en caso de que haya un bloqueo.

 2
Author: hopperpl,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-04-10 15:34:37

Ver esta otra respuesta. Básicamente, podrías tener MSBuild.procesos exe que se ejecutan en segundo plano consumiendo archivos de recursos. Si tiene alguna tarea previa o posterior a la compilación que cause que un MSBuild se inicie a través de la línea de comandos, intente agregar la bandera "/ nr: false " a este comando. Pero de nuevo, vea la respuesta anterior para detalles más específicos.

 2
Author: Josh Pavoncello,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:18:30

@Geoff's ( https://stackoverflow.com/a/25251766/3739540 ) la respuesta es buena, pero lanza el código de error 1 en recompilar.

Esto es lo que funcionó para mí (2>nul 1>nul al final + salida 0):

(if exist "$(TargetDir)*old.pdb" del "$(TargetDir)*old.pdb") & (if exist "$(TargetDir)*.pdb" ren "$(TargetDir)*.pdb" *.old.pdb) 2>nul 1>nul
(if exist "$(TargetDir)*old.dll" del "$(TargetDir)*old.dll") & (if exist "$(TargetDir)*.dll" ren "$(TargetDir)*.dll" *.old.dll) 2>nul 1>nul
exit 0
 2
Author: Michael Ribbons,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:10:48

Si está depurando las plantillas de T4 , esto sucede todo el tiempo. Mi solución (antes de que MS arregle esto) sería solo matar este proceso:

Administrador de tareas User> Usuario T> T4VSHostProcess.exe

Este proceso solo aparece cuando depura una plantilla T4, no cuando ejecuta una.

 2
Author: Pompair,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-02-19 09:52:08
  1. Abrir propiedades del proyecto [menú > proyecto > propiedades]
  2. Elija la pestaña "depurar"
  3. Desmarque "Habilitar el proceso de alojamiento de visual studio"
  4. Iniciar depuración [F5]
  5. Recibirá una advertencia de seguridad , simplemente "ok". Permite ejecutar la aplicación
  6. Detener la depuración.
  7. Marque la opción "Habilitar el proceso de alojamiento de visual studio", en la pestaña de depuración,
  8. Ahora, intente iniciar la depuración, no volverá a ver el error

[Trabaja para mí]

 2
Author: Novpiar Effendi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-05-07 23:10:08

Siga los siguientes pasos

  1. Abre el Administrador de tareas ( Ctrl + Alt + Supr )
  2. En la pestaña Rendimiento seleccione seleccionar Nombre del proyecto.exe>.
  3. Haga clic en Finalizar proceso.
  4. Ahora construya la solución.

Pasos anteriores error resuelto permanentemente:)

 2
Author: Akshay Bagi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-01-30 03:50:47

Si ninguna de las respuestas funciona, pruebe esta simple comprobación. Buscar para cualquier MSBuild.exe ejecutando y sosteniendo su proyecto EXE. Mata a MSBuild.exe y tú deberían estar listos para irse.

 2
Author: Gentleman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-04-23 13:01:20

Finalmente cómo arreglarlo. Por qué no podemos continuar depurando después de la primera depuración porque el primer exe de depuración todavía se está ejecutando. Por lo que, después de la primera depuración, debe ir al Administrador de tareas -> Pestaña de proceso -> [su nombre de proyecto exe] finalizar el proceso exe.

Funciona para mí:)

 1
Author: chevhfghfghfgh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-06-06 09:55:06

Esta pregunta fue el primer resultado al buscar el siguiente error:

No se pudo copiar el archivo "..."porque no fue encontrado.

Al compilar en Visual Studio 2013 (Actualización 3).

Solución: Desinstalación de las "Herramientas eléctricas de productividad" en Visual Studio 2013.

Https://connect.microsoft.com/VisualStudio/feedback/details/533411

 1
Author: AlejandroC,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-08-07 13:50:27

En mi caso fue Resharper Unit Tests runner(además de NUnit tests, nunca tuve ese problema con MsTests). Después de matar el proceso, fue capaz de reconstruir el proceso, sin reiniciar el sistema operativo o VS2013

 1
Author: Uriil,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-01-15 14:16:51

No me di cuenta de que todavía tenía mi depurador conectado y estaba tratando de construir en la misma instancia de Visual Studio. Una vez que detuve el depurador fui capaz de construir.

 1
Author: Valamas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-02-13 00:50:59

Matando el vstest.motor de ejecución.exe proceso(es) resuelve este problema el 90% del tiempo para mí. Si eso no funciona, entonces también matando QTAgent32.exe y luego eliminar las carpetas /bin y /obj para el proyecto en cuestión funciona.

Esta es la parte más irritante de mi día de trabajo. :)

 1
Author: dgundersen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-06-09 20:30:29

Para mí fue el Avast antivirus que no vamos a visual studio para lectura/escritura/ejecución de archivos. Así que tuve que añadir Visual studio 2010/2012 carpeta a la lista de exclusión antivirus. Y justo después de eso Baam... funciona.

 1
Author: Alex,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-07-01 01:29:22

Asegúrese de que u cierre todas las instancias wcfSvcHost e inténtalo de nuevo. ¡Funcionó para mí!

 1
Author: Ocelot,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-07-16 02:52:11

He notado algunas respuestas que resolvieron mi problema, PERO, por si alguien está teniendo el mismo problema que yo.

SI ESTÁ EJECUTANDO UNA APLICACIÓN DE CONSOLA: ANTES DE HACER CUALQUIER OTRA COSA.

Asegúrese de haber cerrado cualquier ventana de consola que pueda haber sido abierta desde una compilación anterior. Por ejemplo, estaba probando algún código en una aplicación de consola, no me di cuenta de que la ventana de la consola de una de las veces anteriores que ejecuté mi programa estaba abierta. Durante esa sesión fui depurando, la ventana fue empujada hacia atrás y no pude verla. Solo digo, este podría ser su problema, así que verifique para asegurarse de que no sea el problema.

 1
Author: Eric Bishard,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-08-08 08:31:20