Errores al recompilar aplicaciones ASP.NET 2.0 y cómo solucionarlos

Una cosa típica que pasa en VS2005 desde que salió es que estamos trabajando en una aplicación, cambiamos algo en el código, la lanzamos para probar, paramos, y así sucesivamente y, de repente, en un momento determinado y sin venir a cuento, nos aparece un mensaje de error y nos dice que no se ha podido compilar porque un archivo estaba bloqueado o algo así (he intentadno reproducir una captura, pero justo hoy no está por la labor y me funciona perfectamente).


El caso es que suelen ser mensajes estilo:



Could not load file or assembly ‘XXXXXXX’ or one of its dependencies. The system cannot find the file specified.


aunque hay algunos más.


Este error se produce porque hay algunos archivos resultantes de la anterior compilación que quedan bloqueados y el entorno no puede sobrescribirlos.


Hay varias soluciones:



1.- Compilar entero el proyecto otra vez desde el menú Build·Build all. Es lo que suelo hacer yo.
2.- Borrar los archivos temporales de ASP.NET. Es fácil de hacer ocn un bat que tengamos siempre a mano.
3.- Meter un ajuste en web.config para indicar al compilador que no use compliación por lotes, así:

<compilation debug=»false» batch=»false»></compilation>

No me preguntes porqué funciona, pero el caso es que funciona.


Puedes encontrar los detalles de este tipo de error y esta última solución en este artículo de la Knowledge base de Microsoft.


El caso es que la gente de Microsoft ha sacado un parche no oficial para solucionar este problema. Instálalo sólo si te pasan estas cosas. Lo puedes descargar desde aquí. Necesitas autenticarte con una cuenta Passport para descargarlo, pero es libre y gratuito.


Espero que te sirva.

Sin categoría

2 thoughts on “Errores al recompilar aplicaciones ASP.NET 2.0 y cómo solucionarlos

  1. Gracias!

    Hay veces que te pasan esas cosas y te desesperas, saber que no estás sólo siempre ayuda. Mal de muchos….

    Yo a veces reiniciaba el VS entero. 😉

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *