c# como - Visual Studio "No se pudo copiar"...durante la compilación




generar project (25)

Creo que lo resolví eliminando la marca de verificación para Break all processes when one process breaks en las opciones de Depuración (primera captura de pantalla de la operación -> segunda opción).
Ha estado construyendo / funcionando bien por un tiempo desde que lo deseleccioné.
Estoy usando los controles MySQL NET Connector y DevExpress en mi proyecto. Puede ser que uno de ellos no estuviera desechando conexiones, enlaces, etc. debido a la activación de esta bandera.

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

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 he descubierto 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?

Mis ajustes del depurador son


La respuesta de @ Geoff ( https://.com/a/25251766/3739540 ) es buena, pero arroja el código de error 1 en la recompilación.

Esto es lo que funcionó para mí (2> nul 1> nul en el 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

Lo he solucionado matando a IISExpress en el administrador de tareas


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

Así que en lugar de esto

Lo cambio por esto

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


Si ninguna de las respuestas funciona, intente esta simple comprobación. Busque cualquier MSbuild.exe ejecutando y manteniendo su proyecto EXE. Mata a MSBuild.exe y deberías estar listo.


El .vhost.exe es un proceso de depuración, 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 mantenga vivo y que no esté deteniendo el proceso de depuración correctamente. Hay opciones para desvincularse del proceso cuando hace clic en "detener la depuración" en lugar de matar al depurador, por lo que quizás tenga ese conjunto.

Pero ese es el problema: el OS está bloqueando (es decir, aún se está utilizando) el archivo que está intentando copiar, por lo que impide la copia. Asegúrate de que el archivo sea gratuito y puedas copiarlo.


No me di cuenta de que todavía tenía el depurador adjunto e intentaba construir en la misma instancia de Visual Studio. Una vez que detuve el depurador pude construir.


Por fin me lo arreglo. Por qué no podemos continuar con la depuración después de la primera depuración porque el primer exe de depuración aún se está ejecutando. De modo que, después de la primera depuración, debe ir a Administrador de tareas -> pestaña Procesar -> [nombre de su proyecto exe] finalizar el proceso exe.

esto funciona para mi :)


Matar el proceso w3wp.exe (IIS) a menudo lo resolverá.
En general, 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é utilizando, contendrá el nombre del proceso que debe eliminarse.


No puedo dar una solución para evitar que esto suceda, pero al menos puede RENOMBRAR el archivo bloqueado (Windows Explorer o la ventana de comandos clásica) y luego compilar / compilar. No es necesario reiniciar o reiniciar VS201x. Con algo de experiencia, puede agregar una secuencia de comandos de compilación previa para eliminar archivos antiguos o renombrarlos y dejarlos fuera del camino en caso de que haya un bloqueo.


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

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

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

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

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

Espero que esto ayude...


Me he encontrado con mensajes de error similares en Visual Studio 2013.

Sobre todo, he descubierto que esta situación se ha producido cuando se detuvo un proceso de depuración debido a una excepción.

Cuando clean + build no resolvió este problema para mí, tuve éxito haciendo lo siguiente:

  • Cierre de visual studio
  • Eliminando las carpetas bin y obj , y
  • Reapertura de Visual Studio.

Este "error" ha existido desde Visual Studio 2003.

Finalmente, también encontré que a menudo puedo superar este problema simplemente cambiando el nombre del archivo ejecutable y luego eliminándolo.


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

No se pudo copiar el archivo "..." porque no se encontró.

al construir en Visual Studio 2013 (Actualización 3).

Solución: desinstalación de "Productivity Power Tools" en Visual Studio 2013.

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


He notado algunas respuestas que resolvieron mi problema, PERO, en caso de que alguien tenga el mismo problema que yo.

SI ESTÁS EJECUTANDO UNA APLICACIÓN DE CONSOLA: ANTES DE HACER ALGO MÁS.

Asegúrese de haber cerrado todas las ventanas de la consola que se hayan abierto desde una compilación anterior. Por ejemplo, solo estaba probando un código en una aplicación de consola, no me di cuenta de que la ventana de la consola de una de las veces que ejecuté mi programa estaba abierta. Durante esa sesión estaba haciendo la depuración, la ventana se empujó hacia atrás y no pude verla. Solo digo, este podría ser su problema, así que asegúrese de que no sea el problema.


Siga los pasos a continuación

  1. Abrir el Administrador de tareas (Ctrl + Alt + Delete)
  2. En la pestaña Rendimiento, seleccione < ProjectNameOfYours.exe >.
  3. Haga clic en Finalizar proceso.
  4. Ahora construir la solución.

Por encima de los pasos resueltos el error permanentemente :)


Debes desactivar tu antivirus (especialmente si es un Avast) e intentarlo de nuevo. Me ayudó. El problema es que el depurador / constructor crea el archivo .exe identificado como una amenaza por Avast y, por lo tanto, eliminado justo antes de que VS pueda ejecutarlo.


Citar:

Una solución alternativa es poner esto en la propiedad de línea de comando de eventos de Pre-compilación del> proyecto (en la pestaña Eventos de compilación):

Fragmento de código

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

if exist "$(TargetPath)" if not exist "$(TargetPath).locked" move "$(TargetPath)" "$(TargetPath).locked"

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


Excepción

En algunos casos en Visual Studio cuando usted (Build || Rebuild) además de ejecutar IISExpress se enfrentó a esta excepción:

No se puede copiar el archivo "obj \ Debug \ YourProjectName.dll" a bin \ YourProjectName.dll ". El proceso no puede acceder al archivo 'bin \ YourProjectName.dll' porque otro proceso lo está utilizando

Solución

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

Eres bueno 2 GO!


Para mí, fue el antivirus Avast el que Visual Studio no podía escribir / leer / ejecutar. Así que tuve que agregar la carpeta Visual Studio 2010/2012 a la lista de exclusión de antivirus. Y justo después de eso baam ... funciona.


En Visual Studio Premium 2013 (Actualización 3), resolví esto con una línea de compilación previa:

(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 es posible), luego renombra todo lo que queda con una extensión .old.pdb . Un efecto secundario agradable es que si el PDB anterior aún está bloqueado, simplemente agrega otra pieza antigua al nombre del archivo, y todos se limpiarán la próxima vez que reinicie Visual Studio y realice una compilación.

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

Luego, se inicia la sesión de compilación / depuración 2, y tanto MyProject.pdb como MyProject.old.pdb aún están bloqueados:
MyProject.old.pdb -> MyProject.old.old.pdb
MyProject.pdb -> MyProject.old.pdb

Finalmente, al reiniciar Visual Studio y realizar una compilación nueva se eliminarán ambos y se continuará el proceso de la forma habitual.


Matar el proceso (s) vstest.executionengine.exe resuelve este problema el 90% del tiempo para mí. Si eso no funciona, también se eliminará QTAgent32.exe y luego se eliminarán las carpetas / bin y / obj para el proyecto en cuestión.

Esta es la parte más irritante de mi jornada laboral. :)


Ver esta otra respuesta . Básicamente, podría tener los procesos de MSBuild.exe ejecutándose en los archivos de recursos que consumen el fondo. Si tiene alguna tarea de creación previa o posterior que haga que se inicie un MSBuild a través de la línea de comandos, intente agregar el indicador "/ nr: false" a este comando. Pero nuevamente, vea la respuesta anterior para detalles más específicos.


Mi contribución de 10 centavos.

Todavía tengo este problema ocasionalmente en la actualización 2 de VS 2015.

Encontré que cambiar el destino de compilación resuelve el problema.

Intente esto: si está en DEBUG, cambie a RELEASE y compile, luego vuelva a DEBUG. El problema se ha ido.

Stefano


Como se indica en esta respuesta del comentario de Pramod, el problema proviene del paquete de nuget Microsoft.CodeDom.Providers.DotNetCompilerPlatform , que se actualiza específicamente de la versión 1.0.0 a 1.0.1 .

Para mí, sin embargo, la degradación con Visual Studio causó más errores de compilación. Para resolver el problema, tuve que editar manualmente mis archivos csproj y packages.config, eliminando todas las referencias a Microsoft.Net.Compilers y Microsoft.CodeDom.Providers.DotNetCompilerPlatform .

Específicamente, esto significaba:

  • Eliminando las secciones <Import Project="... relevantes para todas las versiones de ambas bibliotecas (generalmente hacia el principio del csproj)
  • Eliminando las secciones <Reference Include="... para ambas versiones de ambas bibliotecas
  • Eliminación de la <Error Condition="!Exists(... secciones para ambas versiones de ambas bibliotecas dentro de la sección de destino EnsureNuGetPackageBuildImports
  • Eliminando todos Microsoft.CodeDom.Providers.DotNetCompilerPlatform paquetes Microsoft.CodeDom.Providers.DotNetCompilerPlatform y Microsoft.Net.Compilers de packages.config.

Entonces pude administrar los proyectos nuget paquetes en VS y (en orden):

  • Añadir Microsoft.Net.Compilers versión 1.2.2
  • Agregue Microsoft.CodeDom.Providers.DotNetCompilerPlatform versión 1.0.1

Esto solucionó el error de compilación del archivo de paginación y el error de tiempo de ejecución que me impulsó a intentar actualizar en primer lugar.





c# visual-studio-2012 build process