Monday, July 23, 2012

BadImageFormatException, multiprocesadores y cintas de vídeo

Bueno, como buen noob en esto de visual studio, he pecado en el ensamblado de múltiples soluciones.
Os suena de algo este error?

System.BadImageFormatException


A mí sí. FaceTracking de Kinect. Dolor, mucho dolor. No he encontrado NINGUNA referencia muy clara de cómo resolverlo en mi caso, el error que indicaba es el siguiente:

El ensamblado al que se hace referencia 'nombredeensamblado' tiene como destino un procesador distinto"

Sería esto? tendría algo que ver? Pues mágicamente como vino, se solucionó de estas dos maneras.

Aquí van dos soluciones, una adecuada y otra chapucera:

1) Adecuada: cuando se os presente un error de este tipo, lo más fácil es descargar un proyecto que trabaje EXCLUSIVAMENTE para vuestra versión para evitaros problemas (en mi caso, tenía dos versiones de ejecución, una de x64 y otra de x86, y parece ser que se iba directamente a por la de 64 bits por más que yo intentase apañarlo mediante visual studio). Consejo noob: quitad la referencia y volved a instalaros desde el Developer Toolkit de Kinect el FaceTracking.Funciona y todo es de color.

2) Chapucera: Cambiar la "configuración de soluciones" de Debug a Release: Cuando estás en Debug, es cuando te salta el error del procesador distinto; Release obvia ese error y lo ejecuta a toda costa (esto es, corregidme si me equivoco, una diferencia notable que no he leído en ningún otro sitio). De nuevo, vuelve a funcionar, con el pequeño engorro de tener que poner:
 #if (!DEBUG)    
  // Porción de código que se ejecuta cuando estemos en Release  
 #endif  

Y esto ha sido todo por hoy. Estoy abierto a correcciones y espero que os ayude =).

No comments:

Post a Comment