Tengo un proyecto de Visual Studio 2008 que "actualicé" a Visual Studio 2010. Desde la actualización he tenido muchos problemas con el proyecto (un proyecto que fue y sigue siendo trooper en 2008 podría agregar).Problema de bloqueo de archivos de compilación de Visual Studio 2010
El primer problema es que al crear el ejecutable principal se bloquea el ejecutable, lo que hace que las reconstrucciones posteriores fallen. Esto se describe en una pregunta relacionada: Visual Studio locks output file on build donde recogí la solución:
if exist "$(TargetPath).locked" del "$(TargetPath).locked"
if exist "$(TargetPath)" if not exist "$(TargetPath).locked" move "$(TargetPath)" "$(TargetPath).locked"
Excepto que esta solución funciona exactamente vez. El archivo .locked también es bloqueado por devenv.exe y debe ser movido. He estado trabajando alrededor de esto agregando .1.locked, .2.locked, etc. La única vez que se quitan los bloqueos para que los archivos puedan ser borrados está en el apagado de devenv.exe (tarda unos segundos después la interfaz de usuario desaparece, luego los archivos se pueden eliminar).
El hecho de que el depurador no tiene que ser utilizado para causar este problema apunta a un problema bastante grave con el sistema de compilación 2010.
Algunas teorías creo que puedo descontar:
- antivirus u otras tareas de fondo: si esto era un problema parecería 2008 sería un fracaso. Sin embargo, al ser un complemento, eliminé el avast! sistema completamente sin suerte.
ACTUALIZACIÓN: Este proyecto tiene los mismos síntomas en una máquina sin antivirus ni utilidad de copia de seguridad. Las máquinas en la oficina ejecutan XP SP3 32 bits, mi máquina local es Windows 7 de 64 bits. Esto parece ser independiente del sistema operativo.
- El depurador está bloqueando el archivo: todo lo que se necesita para reproducir esto es repetir el proceso de compilación sin depuración. ProcessExplorer muestra que devenv.exe es el titular de los bloqueos, no vshost y que el vshost.exe no elimina los bloqueos de todos modos.
Tengo un problema secundario que comienza a ocurrir una vez que los archivos se bloquean: los diseñadores de formularios dejan de cargar con un error de "no se puede encontrar el ensamblaje". Sospecho que están relacionados con el problema de bloqueo anterior, ya que los diseñadores dispararon hasta anterior a una compilación, pero realizar cualquier cambio y reconstrucción hará colapsar a todos los diseñadores con ese error (incluso los que tengo abiertos y como la vista actual))
Es lamentable ver un formulario cerca de la pantalla de error blanco simplemente porque ha cambiado "dummy = 1" a "dummy = 2" donde "dummy" no hace más que forzar una recompilación en un ensamblado completamente diferente.
Actualización: He intentado algunos remedios más: Habilitar el paso de la fuente .NET no está marcado, por lo que ese no es el problema. La eliminación de .SUO (opciones de usuario de solución) simplemente funciona durante el tiempo que un reinicio normalmente eliminaría el problema (dos compilaciones: la primera porque no hay un archivo bloqueado y la segunda porque hay una, pero el script puede cambiarle el nombre))
Error 28 Unable to copy file "obj\Debug\PolicyTracker3.exe" to "bin\Debug\PolicyTracker3.exe".
The process cannot access the file 'bin\Debug\PolicyTracker3.exe' because it is being used by another process.
¿Alguna vez resolvió esto? –
En cuanto a la información en la única respuesta que obtuve aquí en SO, la característica mencionada (origen de .NET framework) no está habilitada y nunca fue habilitada. – Godeke
Para el registro, también estoy recibiendo este problema, y la solución también es una convertida desde 2008, así que tal vez eso tiene algo que ver con eso. No entiendo los problemas del diseñador de formularios, pero todo lo demás es casi exactamente como usted lo describe. –