2011-04-15 7 views
6

Tengo problemas desde hace un tiempo (ya que estoy usando Visual Studio 2010, creo). Cuando estoy tratando de empezar una depuración en mi aplicación web, me sale este error al azar de VS.net medio ambiente:Visual Studio 2010: no se puede copiar el archivo en la depuración

de error 1 No se puede copiar el archivo "obj \ Debug \ SolutionName.exe" a "bin \ Debug \ SolutionName.exe ". El proceso no puede acceder al archivo 'bin \ Debug \ SolutionName.exe' porque está siendo utilizado por otro proceso.

La única forma de deshacerse de este error es reiniciar Visual Studio (para recuperar el error pronto, algo así como dos veces al día).

Después de buscar un poco en internet, descubrí que eso es que es posible añadir un pre-Buil, de aquí MSDN Link

Todo lo que encontré es la de escribir algo en los eventos previos a construir y hacer algún archivo manejo ... bueno (no funciona de todos modos).

Pregunta 1: ¿Hay alguna manera más fácil de resolver este problema (y para siempre)
Pregunta 2: ¿Cuál es el motivo exacto de este problema?

Respuesta

3

Esto está relacionado con el copiado en la sombra. Se puede desactivar este tipo en web.config:

hostingEnvironment shadowCopyBinAssemblies="false" 

También puede utilizar una solución si la configuración anterior no funciona en absoluto con un evento de pre-construcción:

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

Puede Deshabilite por completo el servicio ShadowCopy en Windows para que no tenga que establecer estos valores para todas las soluciones, pero eso romperá muchas funcionalidades, por lo que no lo recomiendo.

Siempre puede usar una secuencia de comandos por lotes personalizada para ser llamado por el evento postbuild del último proyecto (según el orden de compilación) que hará todo el negocio de copiado (que utilizo ahora).

+0

Y tengo que poner esto en cada solución? ¡Es raro! ¿Por qué tengo que hacer esto? Quiero decir, si hay una copia oculta que suponga que lo haga, ¿por qué no está funcionando? –

+1

Realizaremos el copiado en segundo plano para hacer una copia de seguridad de su solución, de modo que cuando Visual Studio falle, pueda recuperar sus últimos estados y archivos. Estoy seguro de que estás acostumbrado a esto con Office. Y sí, tendrás que hacer esto por cada solución que tengas. –

+0

¿Y hay alguna razón por la que se cuelga "aleatoriamente"? ¿Es algo que hago mal? –

Cuestiones relacionadas