2012-09-06 29 views
13

Tengo este error al compilar una gran solución C# en Visual Studio 2010. Cada vez que compilaba tenía . obj eliminar la carpeta de uno de los proyectos utilizados por esta solución lo contrario me dieron el siguiente error:Visual Studio No se pudo escribir en el archivo de salida '... obj Debug Foo.Bar.dll "

Could not write to output file '...\obj\Debug\Foo.Bar.dll' 
The process cannot access the file because it is being used by another process 

he estaba buscando una solución todo a través de Internet y, de hecho encontré/intentado algunos de ellos

.

Por ejemplo: muchas personas en los foros de desarrolladores sugirieron no iniciar la compilación, mientras que UserControl (en algunos otros r fuentes de) se abre el diseñador.

Algunas otras personas utilizan pre-scripts de creación para la eliminación de la carpeta obj, esta solución particular es aceptable, pero si el proyecto es emitido una biblioteca ampliamente utilizado su recompilación causará recopilación de proyectos "padre".

Respuesta

37

Finalmente, he descubierto una solución para este VS2010 (SP1 también) "error" y quiero compartirlo con los usuarios de stackoverflow.

En mi caso, el problema era que el archivo csproj estaba SELF-REFERENCING el archivo '...\obj\Debug\Foo.Bar.dll' bloqueado. Loco, lo sé Así que resolvieron este problema molesto por la eliminación de la siguiente línea de .csproj archivo:

<Reference Include="Foo.Bar"> 
    <HintPath>obj\Debug\Foo.Bar.dll</HintPath> 
</Reference> 
+2

Debe aceptar esto como la respuesta a su pregunta. – Bernard

+0

@Bernard Lo sé, pero con mi calificación ... No puedo. cit. "Puedes aceptar tu propia respuesta en 2 días" De todos modos lo haré, conozco las reglas: D – Salaros

+0

Estaba pensando en llenar un error para este problema, pero como VS12 ya está fuera, los chicos de Microsoft probablemente lo marquen como " no arreglará ": D Oh, ¿han revisado a sus chicos si VS12 (mis) se comporta de la misma manera? – Salaros

2

inicialmente he encontrado otra solución al problema como VS parece bloquear el conjunto en la carpeta obj \ debug. Agregué un script precompilado para el proyecto que solucionó mi problema.

del "$(ProjectDir)obj\*.*" /S /F /Q 

Después de ver la respuesta dada por Salaros, ese era precisamente el problema. Creé un nuevo control de usuario que usa un control de servidor de otro proyecto. Por alguna razón, a veces VS crea una autoreferencia a sí mismo cuando ve el control de usuario en modo de diseño. Incluso la eliminación de la autorreferencia lo corrige hasta que VS cree que es hora de volver a agregar la referencia. No he encontrado un patrón exacto para esa parte.

PS: Estoy usando vs2012

+0

por favor lea mi pregunta original: "[hablando de su solución] ... esta solución particular es aceptable, pero si el proyecto emitido es una biblioteca ampliamente utilizada, su compilación provocará la recompilación de proyectos" padre ". esto ralentiza la depuración dramáticamente – Salaros

0

este problema sucedió conmigo cuando:

Abra Visual Studio de ejecución de depuración vaya a C: y limpieza del sistema uso

tratar de construir de nuevo , ...

encontrará este error

Solución: cierre Visual Studio limpieza del sistema maquillaje reinicio del equipo Visual Studio abierto como administrador elegir proyecto limpia reconstruir

que funcionará

0

En mi caso para mí de alguna manera el archivo exe le faltaba a la liberación. No estoy seguro de cómo sucedió esto. Lo reemplazo con una copia de depuración y todo estaba bien.Debería haberlo comprobado antes, pero nunca pensé que el archivo simplemente desaparecería.

Cuestiones relacionadas