domingo, abril 27, 2008

Error al compilar un proyecto en Visual Studio 2005

Usualmente cuando una Solución en Visual Studio 2005 tiene varios proyectos incluidos y entre ellos se referencian, al compilar (click en Build o Rebuild) en uno de dichos proyectos sucede que se produce un error con la siguiente descripcion:

Unable to copy file "obj\Debug\project1.dll" to "bin\Debug\project1.dll". The process cannot access the file 'bin\Debug\project1.dll' because it is being used by another process.

Esto sucede principalmente porque como se tienen varios proyectos que se referencian entre ellos y se esta intentando acceder a una de las dlls a travez de la compilacion de uno de estos proyectos, no te permite debido a que se encuentra siendo utilizado por un tercero bloqueando a la dll solicitada.

Muchas veces artesanalmente tenia una solucion a esto, era la de cerrar el Visual Studio 2005 y nuevamente abrirlo, esto genera molestia en la tarea del desarrollo, asi que tengo una mejor solucion:

Click derecho sobre el proyecto al que hace referencia el error descrito lineas arriba, le dan en Propiedades (Properties) y en la pestaña "Build Events" tienen dos cajas de texto, la primera de ellas dice: "Pre-Build event command line," si se encuentra deshabilitado solo le dan click en el boton "Edit Pre-Build" y escriben lo siguiente:

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

En el grafico pueden observar dicha modificacion:
En caso que se hayan encontrado con este problema apliquen esta solución, realmente funciona.
Fuente: Foros de MSDN

Saludos.

1 comentario:

Anónimo dijo...

Genial!!!